| |
| |
| if(UNIX AND "${CMAKE_GENERATOR}" MATCHES "Makefile" AND |
| NOT CMake_TEST_NO_FindPackageModeMakefileTest) |
| |
| # Test whether the make is GNU make, and only add the test in this case, |
| # since the configured makefile in this test uses $(shell ...), which |
| # is AFAIK a GNU make extension. Alex |
| execute_process(COMMAND ${CMAKE_MAKE_PROGRAM} -v |
| OUTPUT_VARIABLE makeVersionOutput |
| ERROR_QUIET |
| TIMEOUT 10) |
| string(TOUPPER "${makeVersionOutput}" MAKE_VERSION_OUTPUT) |
| if("${MAKE_VERSION_OUTPUT}" MATCHES "GNU MAKE") |
| |
| # build a library which we can search during the test |
| add_library(foo STATIC foo.cpp) |
| |
| # configure a FindFoo.cmake so it knows where the library can be found |
| configure_file(FindFoo.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FindFoo.cmake @ONLY) |
| |
| # Need the -isysroot flag on recentish macOS after command line tools |
| # no longer provide headers in /usr/include |
| if(APPLE AND CMAKE_OSX_SYSROOT) |
| set(__EXTRA_OSX_SYSROOT_FLAGS "-isysroot ${CMAKE_OSX_SYSROOT}") |
| else() |
| set(__EXTRA_OSX_SYSROOT_FLAGS "") |
| endif() |
| |
| # now set up the test: |
| file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/cmakeExecutable.mk" |
| CONTENT "CMAKE = \"$<TARGET_FILE:cmake>\"\n" |
| ) |
| configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Makefile.in ${CMAKE_CURRENT_BINARY_DIR}/ConfMakefile @ONLY) |
| configure_file(${CMAKE_CURRENT_SOURCE_DIR}/main.cpp ${CMAKE_CURRENT_BINARY_DIR}/main.cpp COPYONLY) |
| |
| add_test(FindPackageModeMakefileTest ${CMAKE_MAKE_PROGRAM} -f ${CMAKE_CURRENT_BINARY_DIR}/ConfMakefile ) |
| |
| endif() |
| |
| endif() |