1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- 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()
- 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()
- add_library(testlib testlib.cxx)
- add_executable (simple simple.cxx ../simple.cxx ${DEEPSRC})
- target_link_libraries(simple testlib outlib)
- endif ()
- # 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()
|