summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2012-03-19 13:29:06 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2012-03-19 13:29:06 (GMT)
commit572994bd9f8ea77c3101f0b019b693c37b0d502e (patch)
treed63d09e3a04eb0fedb28028cd874afe181310078 /Tests
parent9987d9522be45a2c63d68298da6696d965693348 (diff)
parent848520859afebb3353a91561725e4e96b48a6c35 (diff)
downloadCMake-572994bd9f8ea77c3101f0b019b693c37b0d502e.zip
CMake-572994bd9f8ea77c3101f0b019b693c37b0d502e.tar.gz
CMake-572994bd9f8ea77c3101f0b019b693c37b0d502e.tar.bz2
Merge topic 'ninja-generator'
8485208 Ninja: shell escape $(CMAKE_SOURCE_DIR) and $(CMAKE_BINARY_DIR) df84767 Ninja: add support for OBJECT_OUTPUTS, fix PrecompiledHeader test case 48eb7fc Ninja: Avoid using 'this' in member initializers bba37dd Ninja: Fix for PDB files with spaces in the path. ac800f4 Ninja: Constify use of cmCustomCommand 9a0d5a8 Ninja: add /DEF: flag to linker call d40eebd Ninja: Add a cache option CMAKE_ENABLE_NINJA to enable the ninja generator. 8c63433 Ninja: Add friend struct so it can access the private ConvertToNinjaPath. dbe3dce Ninja: add .def file support f1bb08f Ninja: ensure the output dir exists at compile time 7a6b5f4 Ninja: Remove an unnecessary variable 80ff210 Ninja: Use cmSystemTools::ExpandListArgument to split compile/link commands d2731a3 Ninja: Add a missed license header eabc9b0 Ninja: CMake: Adapt Ninja generator for per-target include dirs bada88e Merge branch 'target-include-directories' into ninja-generator 54bd175 Ninja: windows msvc: create for each target a .pdb file ...
Diffstat (limited to 'Tests')
-rw-r--r--Tests/BuildDepends/CMakeLists.txt2
-rw-r--r--Tests/CMakeLists.txt14
-rw-r--r--Tests/OutOfSource/OutOfSourceSubdir/CMakeLists.txt6
-rw-r--r--Tests/PrecompiledHeader/CMakeLists.txt3
4 files changed, 22 insertions, 3 deletions
diff --git a/Tests/BuildDepends/CMakeLists.txt b/Tests/BuildDepends/CMakeLists.txt
index 31392b5..aa32d67 100644
--- a/Tests/BuildDepends/CMakeLists.txt
+++ b/Tests/BuildDepends/CMakeLists.txt
@@ -40,6 +40,8 @@ if("${CMAKE_GENERATOR}" MATCHES "Make")
endif()
list(APPEND _cmake_options "-DTEST_LINK_DEPENDS=${TEST_LINK_DEPENDS}")
+list(APPEND _cmake_options "-DCMAKE_FORCE_DEPFILES=1")
+
file(MAKE_DIRECTORY ${BuildDepends_BINARY_DIR}/Project)
message("Creating Project/foo.cxx")
write_file(${BuildDepends_BINARY_DIR}/Project/foo.cxx
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index cf4dc44..5f125a4 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -407,6 +407,15 @@ IF(BUILD_TESTING)
--build-target car
--test-command car
)
+
+ IF(${CMAKE_TEST_GENERATOR} MATCHES "Ninja")
+ # The Ninja generator does not create a recursive build system. Start
+ # from the root directory.
+ SET(SubProject_SUBDIR)
+ ELSE()
+ SET(SubProject_SUBDIR "/foo")
+ ENDIF()
+
# For stage 2, do not run cmake again.
# Then build the foo sub project which should build
# the bar library which should be referenced because
@@ -414,13 +423,14 @@ IF(BUILD_TESTING)
# directly in the foo sub project
ADD_TEST(SubProject-Stage2 ${CMAKE_CTEST_COMMAND}
--build-and-test
- "${CMake_SOURCE_DIR}/Tests/SubProject/foo"
- "${CMake_BINARY_DIR}/Tests/SubProject/foo"
+ "${CMake_SOURCE_DIR}/Tests/SubProject${SubProject_SUBDIR}"
+ "${CMake_BINARY_DIR}/Tests/SubProject${SubProject_SUBDIR}"
--build-generator ${CMAKE_TEST_GENERATOR}
--build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
--build-nocmake
--build-project foo
--build-target foo
+ --build-exe-dir "${CMake_BINARY_DIR}/Tests/SubProject/foo"
--test-command foo
)
SET_TESTS_PROPERTIES ( SubProject-Stage2 PROPERTIES DEPENDS SubProject)
diff --git a/Tests/OutOfSource/OutOfSourceSubdir/CMakeLists.txt b/Tests/OutOfSource/OutOfSourceSubdir/CMakeLists.txt
index c7cc090..c362e79 100644
--- a/Tests/OutOfSource/OutOfSourceSubdir/CMakeLists.txt
+++ b/Tests/OutOfSource/OutOfSourceSubdir/CMakeLists.txt
@@ -24,6 +24,12 @@ IF ("${PROJECT_SOURCE_DIR}" STREQUAL "${ANOTHER_PROJ_SOURCE_DIR}")
MATH(EXPR MAXPATH "${MAXPATH} - 46")
ENDIF()
+ # Ninja imposes a maximum path component count of 30. Permit more
+ # path components in the source path.
+ IF(${CMAKE_GENERATOR} MATCHES "Ninja")
+ MATH(EXPR MAXPATH "${MAXPATH} - 44")
+ ENDIF()
+
# MAXPATH less 25 for last /and/deeper/simple.cxx part and small safety
MATH(EXPR MAXPATH "${MAXPATH} - 25")
STRING(LENGTH "${DEEPDIR}" DEEPDIR_LEN)
diff --git a/Tests/PrecompiledHeader/CMakeLists.txt b/Tests/PrecompiledHeader/CMakeLists.txt
index d423cae..3374e32 100644
--- a/Tests/PrecompiledHeader/CMakeLists.txt
+++ b/Tests/PrecompiledHeader/CMakeLists.txt
@@ -47,7 +47,8 @@ SET_SOURCE_FILES_PROPERTIES(foo_precompile.c PROPERTIES
# Setup dependencies for precompiled header creation and use. The VS
# IDE takes care of this automatically.
-IF("${CMAKE_GENERATOR}" MATCHES "Makefile")
+IF("${CMAKE_GENERATOR}" MATCHES "Makefile" OR
+ "${CMAKE_GENERATOR}" MATCHES "Ninja")
# This source file creates the precompiled header as a side-effect.
SET_SOURCE_FILES_PROPERTIES(foo_precompile.c PROPERTIES
OBJECT_OUTPUTS "${PCH_DIR}/foo_precompiled.pch")