| cmake_minimum_required (VERSION 2.6) |
| project(SUBDIR) |
| |
| # Some systems do not seem to support rpath with spaces. |
| if(CMAKE_SYSTEM_NAME MATCHES "QNX") |
| set(CMAKE_SKIP_BUILD_RPATH 1) |
| endif() |
| |
| # be able to see output from make on dashboards |
| set(CMAKE_VERBOSE_MAKEFILE 1) |
| message("${CMAKE_MAKE_PROGRAM}") |
| set(CMAKE_PAREN TRUE) |
| if("${CMAKE_MAKE_PROGRAM}" MATCHES "wmake") |
| message("wmake does not support () in path") |
| set(CMAKE_PAREN FALSE) |
| elseif("${CMAKE_MAKE_PROGRAM}" MATCHES "make") |
| execute_process(COMMAND ${CMAKE_MAKE_PROGRAM} no_such_target --version |
| RESULT_VARIABLE res OUTPUT_VARIABLE out ERROR_VARIABLE out) |
| if("${out}" MATCHES "GNU Make 3.82") |
| # GNU Make 3.82 fails on parens: http://savannah.gnu.org/bugs/?30612 |
| message(STATUS "GNU Make 3.82 sometimes fails on () in path") |
| set(CMAKE_PAREN FALSE) |
| endif() |
| endif() |
| |
| if(CMAKE_PAREN) |
| add_definitions(-DCMAKE_PAREN=1) |
| subdirs("Executable Sources" "Some(x86) Sources" EXCLUDE_FROM_ALL "Some Examples") |
| else() |
| subdirs("Executable Sources" EXCLUDE_FROM_ALL "Some Examples") |
| endif() |
| |
| write_file(${SUBDIR_BINARY_DIR}/ShouldBeHere "This file should exist.") |
| #WATCOM WMAKE does not support + in the name of a file! |
| if(WATCOM) |
| set(PLUS_NAME_FILES |
| "Another Subdir/pair_int.int.c" |
| vcl_algorithm_vcl_pair_double.foo.c) |
| else() |
| set(PLUS_NAME_FILES |
| "Another Subdir/pair+int.int.c" |
| vcl_algorithm+vcl_pair+double.foo.c) |
| endif() |
| |
| add_executable(TestFromSubdir |
| "Another Subdir/testfromsubdir.c" |
| "Another Subdir/secondone" |
| ${PLUS_NAME_FILES} |
| ) |
| |
| aux_source_directory(ThirdSubDir SOURCES) |
| if(WATCOM) |
| foreach(f ${SOURCES}) |
| if("${f}" STREQUAL "ThirdSubDir/pair+int.int1.c") |
| else() |
| set(SOURCES2 ${f} ${SOURCES2}) |
| endif() |
| endforeach() |
| set(SOURCES ${SOURCES2}) |
| set(SOURCES ${SOURCES} |
| vcl_algorithm_vcl_pair_double.foo.c) |
| else() |
| foreach(f ${SOURCES}) |
| if("${f}" STREQUAL "ThirdSubDir/pair_int.int1.c") |
| else() |
| set(SOURCES2 ${f} ${SOURCES2}) |
| endif() |
| endforeach() |
| set(SOURCES ${SOURCES2}) |
| set(SOURCES ${SOURCES} |
| vcl_algorithm+vcl_pair+double.foo.c) |
| endif() |
| add_executable(TestWithAuxSourceDir ${SOURCES}) |
| if(CMAKE_PAREN) |
| target_link_libraries(TestWithAuxSourceDir testOddPath) |
| endif() |
| |