mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-04 21:00:17 -06:00
Tutorial: Rewrite using conventions enabled by CMake 3.23
This is a full re-write of the CMake Tutorial for CMake 3.23, both the functionality it provides, as well as the modern workflows that developers use when interfacing with CMake. Issue: #22663, #23086, #23799, #26053, #26105, #26153, #26914
This commit is contained in:
committed by
Brad King
parent
9e89400d13
commit
b2e3e3e30e
29
Help/guide/tutorial/Step8/Tutorial/CMakeLists.txt
Normal file
29
Help/guide/tutorial/Step8/Tutorial/CMakeLists.txt
Normal file
@@ -0,0 +1,29 @@
|
||||
add_executable(Tutorial)
|
||||
|
||||
target_sources(Tutorial
|
||||
PRIVATE
|
||||
Tutorial.cxx
|
||||
)
|
||||
|
||||
target_link_libraries(Tutorial
|
||||
PRIVATE
|
||||
MathFunctions
|
||||
)
|
||||
|
||||
target_compile_features(Tutorial PRIVATE cxx_std_20)
|
||||
|
||||
if(
|
||||
(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") OR
|
||||
(CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
|
||||
)
|
||||
|
||||
target_compile_options(Tutorial PRIVATE /W3)
|
||||
|
||||
elseif(
|
||||
(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR
|
||||
(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
)
|
||||
|
||||
target_compile_options(Tutorial PRIVATE -Wall)
|
||||
|
||||
endif()
|
||||
26
Help/guide/tutorial/Step8/Tutorial/Tutorial.cxx
Normal file
26
Help/guide/tutorial/Step8/Tutorial/Tutorial.cxx
Normal file
@@ -0,0 +1,26 @@
|
||||
// A simple program that computes the square root of a number
|
||||
#include <format>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
#include <MathFunctions.h>
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
if (argc < 2) {
|
||||
std::cout << std::format("Usage: {} number\n", argv[0]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// convert input to double
|
||||
double const inputValue = std::stod(argv[1]);
|
||||
|
||||
// calculate square root
|
||||
double const outputValue = mathfunctions::sqrt(inputValue);
|
||||
std::cout << std::format("The square root of {} is {}\n", inputValue,
|
||||
outputValue);
|
||||
|
||||
double const checkValue = mathfunctions::OpMul(outputValue, outputValue);
|
||||
std::cout << std::format("The square of {} is {}\n", outputValue,
|
||||
checkValue);
|
||||
}
|
||||
Reference in New Issue
Block a user