| cmake_minimum_required(VERSION 3.3) |
| project(Tutorial) |
| |
| set(CMAKE_CXX_STANDARD 11) |
| set(CMAKE_CXX_STANDARD_REQUIRED True) |
| |
| # should we use our own math functions |
| option(USE_MYMATH "Use tutorial provided math implementation" ON) |
| |
| # the version number. |
| set(Tutorial_VERSION_MAJOR 1) |
| set(Tutorial_VERSION_MINOR 0) |
| |
| # 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 MathFunctions library? |
| if(USE_MYMATH) |
| add_subdirectory(MathFunctions) |
| list(APPEND EXTRA_LIBS MathFunctions) |
| endif(USE_MYMATH) |
| |
| # add the executable |
| add_executable(Tutorial tutorial.cxx) |
| |
| target_link_libraries(Tutorial PUBLIC ${EXTRA_LIBS}) |
| |
| # add the binary tree to the search path for include files |
| # so that we will find TutorialConfig.h |
| target_include_directories(Tutorial PUBLIC |
| "${PROJECT_BINARY_DIR}" |
| ) |