mirror of
https://gitlab.kitware.com/cmake/cmake.git
synced 2026-10-07 04:02:23 +03:00
Propagate the refactor in Step 10 MathFunctions through all of the steps. Use MathFunctions/MathFunctions.cxx instead of Tutorial.cxx to determine which sqrt library is called. Adds .h files which correspond to their .cxx files by name.
53 lines
1.8 KiB
CMake
53 lines
1.8 KiB
CMake
# TODO 4: Update the minimum required version to 3.15
|
|
|
|
cmake_minimum_required(VERSION 3.10)
|
|
|
|
# set the project name and version
|
|
project(Tutorial VERSION 1.0)
|
|
|
|
# TODO 1: Replace the following code by:
|
|
# * Creating an interface library called tutorial_compiler_flags
|
|
# Hint: use add_library() with the INTERFACE signature
|
|
# * Add compiler feature cxx_std_11 to tutorial_compiler_flags
|
|
# Hint: Use target_compile_features()
|
|
|
|
# specify the C++ standard
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
|
|
|
# TODO 5: Create helper variables to determine which compiler we are using:
|
|
# * Create a new variable gcc_like_cxx that is true if we are using CXX and
|
|
# any of the following compilers: ARMClang, AppleClang, Clang, GNU, LCC
|
|
# * Create a new variable msvc_cxx that is true if we are using CXX and MSVC
|
|
# Hint: Use set() and COMPILE_LANG_AND_ID
|
|
|
|
# TODO 6: Add warning flag compile options to the interface library
|
|
# tutorial_compiler_flags.
|
|
# * For gcc_like_cxx, add flags -Wall;-Wextra;-Wshadow;-Wformat=2;-Wunused
|
|
# * For msvc_cxx, add flags -W3
|
|
# Hint: Use target_compile_options()
|
|
|
|
# TODO 7: With nested generator expressions, only use the flags for the
|
|
# build-tree
|
|
# Hint: Use BUILD_INTERFACE
|
|
|
|
# configure a header file to pass some of the CMake settings
|
|
# to the source code
|
|
configure_file(TutorialConfig.h.in TutorialConfig.h)
|
|
|
|
# add the MathFunctions library
|
|
add_subdirectory(MathFunctions)
|
|
|
|
# add the executable
|
|
add_executable(Tutorial tutorial.cxx)
|
|
|
|
# TODO 2: Link to tutorial_compiler_flags
|
|
|
|
target_link_libraries(Tutorial PUBLIC MathFunctions)
|
|
|
|
# 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}"
|
|
)
|