summaryrefslogtreecommitdiffstats
path: root/Help/guide/tutorial/Step4
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2022-09-29 11:53:57 (GMT)
committerKitware Robot <kwrobot@kitware.com>2022-09-29 11:54:05 (GMT)
commitbeb4f5df47fe28f9dbbb5d6cecfd783e92de14ac (patch)
tree1ede2b485b35ae59c489e4d5dded5595f8e43e85 /Help/guide/tutorial/Step4
parentf9fb96285126b811104cff133ee85a2e9b92f173 (diff)
parent37fceb6fd382bcfb85860b6b288bfc323e4f4ab7 (diff)
downloadCMake-beb4f5df47fe28f9dbbb5d6cecfd783e92de14ac.zip
CMake-beb4f5df47fe28f9dbbb5d6cecfd783e92de14ac.tar.gz
CMake-beb4f5df47fe28f9dbbb5d6cecfd783e92de14ac.tar.bz2
Merge topic 'tutorial_step4_update'
37fceb6fd3 Tutorial: Update step 4 style Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7646
Diffstat (limited to 'Help/guide/tutorial/Step4')
-rw-r--r--Help/guide/tutorial/Step4/CMakeLists.txt26
-rw-r--r--Help/guide/tutorial/Step4/MathFunctions/CMakeLists.txt2
2 files changed, 28 insertions, 0 deletions
diff --git a/Help/guide/tutorial/Step4/CMakeLists.txt b/Help/guide/tutorial/Step4/CMakeLists.txt
index 38e9b1f..fa4aab2 100644
--- a/Help/guide/tutorial/Step4/CMakeLists.txt
+++ b/Help/guide/tutorial/Step4/CMakeLists.txt
@@ -1,12 +1,36 @@
+# 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
+
# should we use our own math functions
option(USE_MYMATH "Use tutorial provided math implementation" ON)
@@ -23,6 +47,8 @@ endif()
# add the executable
add_executable(Tutorial tutorial.cxx)
+# TODO 2: Link to tutorial_compiler_flags
+
target_link_libraries(Tutorial PUBLIC ${EXTRA_LIBS})
# add the binary tree to the search path for include files
diff --git a/Help/guide/tutorial/Step4/MathFunctions/CMakeLists.txt b/Help/guide/tutorial/Step4/MathFunctions/CMakeLists.txt
index 0515852..5f7369c 100644
--- a/Help/guide/tutorial/Step4/MathFunctions/CMakeLists.txt
+++ b/Help/guide/tutorial/Step4/MathFunctions/CMakeLists.txt
@@ -5,3 +5,5 @@ add_library(MathFunctions mysqrt.cxx)
target_include_directories(MathFunctions
INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}
)
+
+# TODO 3: Link to tutorial_compiler_flags