diff options
author | Anas Nashif <anas.nashif@intel.com> | 2012-10-30 15:39:57 -0700 |
---|---|---|
committer | Anas Nashif <anas.nashif@intel.com> | 2012-10-30 15:39:57 -0700 |
commit | 035c7fabc3b82cbc9a346c11abe2e9462b4c0379 (patch) | |
tree | 7e40f5a790eae329a8c5d3e59f046451767956ff /Tests/OutOfSource/OutOfSourceSubdir/CMakeLists.txt | |
download | cmake-035c7fabc3b82cbc9a346c11abe2e9462b4c0379.tar.gz cmake-035c7fabc3b82cbc9a346c11abe2e9462b4c0379.tar.bz2 cmake-035c7fabc3b82cbc9a346c11abe2e9462b4c0379.zip |
Imported Upstream version 2.8.9upstream/2.8.9
Diffstat (limited to 'Tests/OutOfSource/OutOfSourceSubdir/CMakeLists.txt')
-rw-r--r-- | Tests/OutOfSource/OutOfSourceSubdir/CMakeLists.txt | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/Tests/OutOfSource/OutOfSourceSubdir/CMakeLists.txt b/Tests/OutOfSource/OutOfSourceSubdir/CMakeLists.txt new file mode 100644 index 000000000..c362e79ba --- /dev/null +++ b/Tests/OutOfSource/OutOfSourceSubdir/CMakeLists.txt @@ -0,0 +1,62 @@ +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) + +IF ("${PROJECT_SOURCE_DIR}" STREQUAL "${ANOTHER_PROJ_SOURCE_DIR}") + SET(BUILD_SHARED_LIBS 1) + + # Construct a source file outside the tree whose full path is close to + # the path length limit. This will cause the full path to the object + # file in the build tree to exceed the maximum path length which will + # test cmLocalGenerator::CreateSafeUniqueObjectFileName. + GET_FILENAME_COMPONENT(DEEPDIR + ${OutOfSource_BINARY_DIR}/../OutOfSourceDeep/deeper ABSOLUTE) + + # Test giving the generator a custom limit. + SET(CMAKE_OBJECT_PATH_MAX 220) + + # Use a separate variable for computation. + SET(MAXPATH "${CMAKE_OBJECT_PATH_MAX}") + + # VS8 adds "OutOfSource/SubDir/OutOfSourceSubdir/../../../" to the + # path of the source file for no good reason. Reduce the length + # limit by 46 characters to account for it. It should still be long + # enough to require special object file name conversion. + IF(${CMAKE_GENERATOR} MATCHES "Visual Studio (8|10)") + 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) + WHILE("${DEEPDIR_LEN}" LESS "${MAXPATH}") + SET(DEEPDIR ${DEEPDIR}/and/deeper) + STRING(LENGTH "${DEEPDIR}" DEEPDIR_LEN) + ENDWHILE("${DEEPDIR_LEN}" LESS "${MAXPATH}") + SET(DEEPSRC ${DEEPDIR}/simple.cxx) + STRING(LENGTH "${DEEPSRC}" DEEPSRC_LEN) + CONFIGURE_FILE(simple.cxx.in ${DEEPSRC} COPYONLY) + + # Watcom WMake seems to have problems with long command lines. Just + # disable this part of the test until it is resolved. + IF(${CMAKE_GENERATOR} MATCHES "Watcom WMake") + SET(DEEPSRC "") + ADD_DEFINITIONS(-DNO_DEEPSRC) + ENDIF(${CMAKE_GENERATOR} MATCHES "Watcom WMake") + + ADD_LIBRARY(testlib testlib.cxx) + ADD_EXECUTABLE (simple simple.cxx ../simple.cxx ${DEEPSRC}) + TARGET_LINK_LIBRARIES(simple testlib outlib) +ENDIF ("${PROJECT_SOURCE_DIR}" STREQUAL "${ANOTHER_PROJ_SOURCE_DIR}") + +# test getting a definition from a subdir +SET (WEASELS SIZZLING) + +GET_DIRECTORY_PROPERTY(incDirs INCLUDE_DIRECTORIES) +IF(NOT incDirs) + MESSAGE(FATAL_ERROR "GET_DIRECTORY_PROPERTY(INCLUDE_DIRECTORIES) returned empty list") +ENDIF(NOT incDirs) |