mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-04 13:19:51 -05:00
Tutorial: Update step 2 style
This commit is contained in:
@@ -7,13 +7,36 @@ project(Tutorial VERSION 1.0)
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
||||
|
||||
# TODO 7: Create a variable MY_MATH using option and set default to ON
|
||||
|
||||
# configure a header file to pass some of the CMake settings
|
||||
# to the source code
|
||||
configure_file(TutorialConfig.h.in TutorialConfig.h)
|
||||
|
||||
# TODO 8: Use list() and APPEND to create a list of optional libraries
|
||||
# called EXTRA_LIBS and a list of optional include directories called
|
||||
# EXTRA_INCLUDES. Add the MathFunctions library and source directory to
|
||||
# the appropriate lists.
|
||||
#
|
||||
# Only call add_subdirectory and only add MathFunctions specific values
|
||||
# to EXTRA_LIBS and EXTRA_INCLUDES if USE_MYMATH is true.
|
||||
|
||||
# TODO 2: Use add_subdirectory() to add MathFunctions to this project
|
||||
|
||||
# add the executable
|
||||
add_executable(Tutorial tutorial.cxx)
|
||||
|
||||
# TODO 9: Use EXTRA_LIBS instead of the MathFunctions specific values
|
||||
# in target_link_libraries.
|
||||
|
||||
# TODO 3: Use target_link_libraries to link the library to our executable
|
||||
|
||||
# TODO 4: Add MathFunctions to Tutorial's target_include_directories()
|
||||
# Hint: ${PROJECT_SOURCE_DIR} is a path to the project source. AKA This folder!
|
||||
|
||||
# TODO 10: Use EXTRA_INCLUDES instead of the MathFunctions specific values
|
||||
# in target_include_directories.
|
||||
|
||||
# add the binary tree to the search path for include files
|
||||
# so that we will find TutorialConfig.h
|
||||
target_include_directories(Tutorial PUBLIC
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# TODO 1: Add a library called MathFunctions
|
||||
# Hint: You will need the add_library command
|
||||
@@ -1,3 +1,5 @@
|
||||
// the configured options and settings for Tutorial
|
||||
#define Tutorial_VERSION_MAJOR @Tutorial_VERSION_MAJOR@
|
||||
#define Tutorial_VERSION_MINOR @Tutorial_VERSION_MINOR@
|
||||
|
||||
// TODO 13: use cmakedefine to define MY_MATH
|
||||
|
||||
@@ -5,6 +5,10 @@
|
||||
|
||||
#include "TutorialConfig.h"
|
||||
|
||||
// TODO 11: Only include MathFunctions if MY_MATH is defined
|
||||
|
||||
// TODO 5: Include MathFunctions.h
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
if (argc < 2) {
|
||||
@@ -18,6 +22,10 @@ int main(int argc, char* argv[])
|
||||
// convert input to double
|
||||
const double inputValue = std::stod(argv[1]);
|
||||
|
||||
// TODO 12: Use mysqrt if MY_MATH is defined and sqrt otherwise
|
||||
|
||||
// TODO 6: Replace sqrt with mysqrt
|
||||
|
||||
// calculate square root
|
||||
const double outputValue = sqrt(inputValue);
|
||||
std::cout << "The square root of " << inputValue << " is " << outputValue
|
||||
|
||||
Reference in New Issue
Block a user