9db3116226
Ancient versions of CMake required else(), endif(), and similar block termination commands to have arguments matching the command starting the block. This is no longer the preferred style. Run the following shell code: for c in else endif endforeach endfunction endmacro endwhile; do echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | egrep -z -v 'Tests/CMakeTests/While-Endwhile-' | xargs -0 sed -i -f convert.sed && rm convert.sed
69 lines
1.8 KiB
CMake
69 lines
1.8 KiB
CMake
cmake_minimum_required (VERSION 2.6)
|
|
project (Tutorial)
|
|
|
|
# The version number.
|
|
set (Tutorial_VERSION_MAJOR 1)
|
|
set (Tutorial_VERSION_MINOR 0)
|
|
|
|
# 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 it sqrt of 25
|
|
add_test (TutorialComp25 Tutorial 25)
|
|
set_tests_properties (TutorialComp25
|
|
PROPERTIES PASS_REGULAR_EXPRESSION "25 is 5"
|
|
)
|
|
|
|
# does it handle negative numbers
|
|
add_test (TutorialNegative Tutorial -25)
|
|
set_tests_properties (TutorialNegative
|
|
PROPERTIES PASS_REGULAR_EXPRESSION "-25 is 0"
|
|
)
|
|
|
|
# does it handle small numbers
|
|
add_test (TutorialSmall Tutorial 0.0001)
|
|
set_tests_properties (TutorialSmall
|
|
PROPERTIES PASS_REGULAR_EXPRESSION "0.0001 is 0.01"
|
|
)
|
|
|
|
# does the usage message work?
|
|
add_test (TutorialUsage Tutorial)
|
|
set_tests_properties (TutorialUsage
|
|
PROPERTIES
|
|
PASS_REGULAR_EXPRESSION "Usage:.*number"
|
|
)
|