summaryrefslogtreecommitdiffstats
path: root/Tests/Tutorial/Step5/CMakeLists.txt
diff options
context:
space:
mode:
authorKen Martin <ken.martin@kitware.com>2005-11-10 15:51:25 (GMT)
committerKen Martin <ken.martin@kitware.com>2005-11-10 15:51:25 (GMT)
commit6f5a53618a73b1d0437c7915a8aa0ed2b04d6eda (patch)
treea2873a3f61c47e99700eb879403faa1581e89cec /Tests/Tutorial/Step5/CMakeLists.txt
parent699a97a504f0a56858c91399954fb368a37048b7 (diff)
downloadCMake-6f5a53618a73b1d0437c7915a8aa0ed2b04d6eda.zip
CMake-6f5a53618a73b1d0437c7915a8aa0ed2b04d6eda.tar.gz
CMake-6f5a53618a73b1d0437c7915a8aa0ed2b04d6eda.tar.bz2
ENH: step 5
Diffstat (limited to 'Tests/Tutorial/Step5/CMakeLists.txt')
-rw-r--r--Tests/Tutorial/Step5/CMakeLists.txt70
1 files changed, 70 insertions, 0 deletions
diff --git a/Tests/Tutorial/Step5/CMakeLists.txt b/Tests/Tutorial/Step5/CMakeLists.txt
new file mode 100644
index 0000000..bb7fe99
--- /dev/null
+++ b/Tests/Tutorial/Step5/CMakeLists.txt
@@ -0,0 +1,70 @@
+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)
+
+# 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"
+ )
+
+# should we use our own math functions
+option(USE_MYMATH "Use tutorial provided math implementation" ON)
+
+# 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 (USE_MYMATH)
+
+# add the executable
+add_executable (Tutorial tutorial.cxx)
+target_link_libraries (Tutorial ${EXTRA_LIBS})
+
+# add the install targets
+install_targets (/bin Tutorial)
+install_files (/include FILES "${PROJECT_BINARY_DIR}/TutorialConfig.h")
+
+# 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_test)
+
+# do a bunch of result based tests
+do_test (4 "4 is 2")
+do_test (9 "9 is 3")
+do_test (5 "5 is 2.236")
+do_test (7 "7 is 2.645")
+do_test (25 "25 is 5")
+do_test (-25 "-25 is 0")
+do_test (0.0001 "0.0001 is 0.01")
+