mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-20 12:53:55 +08:00

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
50 lines
1.2 KiB
CMake
50 lines
1.2 KiB
CMake
add_library(MathFunctions)
|
|
|
|
target_sources(MathFunctions
|
|
PRIVATE
|
|
MathFunctions.cxx
|
|
|
|
PUBLIC
|
|
FILE_SET HEADERS
|
|
FILES
|
|
MathFunctions.h
|
|
)
|
|
|
|
target_link_libraries(MathFunctions
|
|
PRIVATE
|
|
MathLogger
|
|
|
|
PUBLIC
|
|
OpAdd
|
|
OpMul
|
|
OpSub
|
|
)
|
|
|
|
target_compile_features(MathFunctions PRIVATE cxx_std_20)
|
|
|
|
if(TUTORIAL_USE_STD_SQRT)
|
|
target_compile_definitions(MathFunctions PRIVATE TUTORIAL_USE_STD_SQRT)
|
|
endif()
|
|
|
|
# TODO1: Include the CheckIncludeFiles module and use it to check for
|
|
# the emmintrin.h header.
|
|
|
|
# TODO2: If emmintrin.h is available, add a compile definition to MathFunctions
|
|
# named TUTORIAL_USE_SSE2. This will only be needed by the MathFunctions
|
|
# implementation file.
|
|
|
|
# TODO4: Include the CheckSourceCompiles module and use it to check if the
|
|
# following program compiles:
|
|
#
|
|
# typedef double v2df __attribute__((vector_size(16)));
|
|
# int main() {
|
|
# __builtin_ia32_sqrtsd(v2df{});
|
|
# }
|
|
|
|
# TODO5: If the GNU builtins are available, add a compile definition to
|
|
# MathFunctions named TUTORIAL_USE_GNU_BUILTIN. This will only be needed
|
|
# by the MathFunctions implementation file.
|
|
|
|
add_subdirectory(MathLogger)
|
|
add_subdirectory(MathExtensions)
|