1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- cmake_minimum_required (VERSION 2.6)
- project (Tutorial)
- # The version number.
- set (Tutorial_VERSION_MAJOR 1)
- set (Tutorial_VERSION_MINOR 0)
- # does this system provide the log and exp functions?
- include (${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake)
- check_function_exists (log HAVE_LOG)
- check_function_exists (exp HAVE_EXP)
- # should we use our own math functions
- option(USE_MYMATH "Use tutorial provided math implementation" ON)
- # configure a header file to pass some of the CMake settings
- # to the source code
- configure_file (
- "${PROJECT_SOURCE_DIR}/TutorialConfig.h.in"
- "${PROJECT_BINARY_DIR}/TutorialConfig.h"
- )
- # add the binary tree to the search path for include files
- # so that we will find TutorialConfig.h
- include_directories ("${PROJECT_BINARY_DIR}")
- # add the MathFunctions library?
- if (USE_MYMATH)
- include_directories ("${PROJECT_SOURCE_DIR}/MathFunctions")
- add_subdirectory (MathFunctions)
- set (EXTRA_LIBS ${EXTRA_LIBS} MathFunctions)
- endif ()
- # add the executable
- add_executable (Tutorial tutorial.cxx)
- target_link_libraries (Tutorial ${EXTRA_LIBS})
- # add the install targets
- install (TARGETS Tutorial DESTINATION bin)
- install (FILES "${PROJECT_BINARY_DIR}/TutorialConfig.h"
- DESTINATION include)
- # enable testing
- enable_testing ()
- # does the application run
- add_test (TutorialRuns Tutorial 25)
- # does the usage message work?
- add_test (TutorialUsage Tutorial)
- set_tests_properties (TutorialUsage
- PROPERTIES
- PASS_REGULAR_EXPRESSION "Usage:.*number"
- )
- #define a macro to simplify adding tests
- macro (do_test arg result)
- add_test (TutorialComp${arg} Tutorial ${arg})
- set_tests_properties (TutorialComp${arg}
- PROPERTIES PASS_REGULAR_EXPRESSION ${result}
- )
- endmacro ()
- # do a bunch of result based tests
- do_test (25 "25 is 5")
- do_test (-25 "-25 is 0")
- do_test (0.0001 "0.0001 is 0.01")
|