mirror of
https://github.com/Kitware/CMake.git
synced 2026-07-02 04:38:04 +00: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
55 lines
1.1 KiB
CMake
55 lines
1.1 KiB
CMake
add_library(MathFunctions)
|
|
|
|
target_sources(MathFunctions
|
|
PRIVATE
|
|
MathFunctions.cxx
|
|
|
|
PUBLIC
|
|
FILE_SET HEADERS
|
|
FILES
|
|
MathFunctions.h
|
|
)
|
|
|
|
# TODO8: Add the interface library to MathFunctions
|
|
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()
|
|
|
|
include(CheckIncludeFiles)
|
|
check_include_files(emmintrin.h HAS_EMMINTRIN LANGUAGE CXX)
|
|
|
|
if(HAS_EMMINTRIN)
|
|
target_compile_definitions(MathFunctions PRIVATE TUTORIAL_USE_SSE2)
|
|
endif()
|
|
|
|
include(CheckSourceCompiles)
|
|
check_source_compiles(CXX
|
|
[=[
|
|
typedef double v2df __attribute__((vector_size(16)));
|
|
int main() {
|
|
__builtin_ia32_sqrtsd(v2df{});
|
|
}
|
|
]=]
|
|
HAS_GNU_BUILTIN
|
|
)
|
|
|
|
if(HAS_GNU_BUILTIN)
|
|
target_compile_definitions(MathFunctions PRIVATE TUTORIAL_USE_GNU_BUILTIN)
|
|
endif()
|
|
|
|
add_subdirectory(MathLogger)
|
|
add_subdirectory(MathExtensions)
|
|
# TODO9: Add the MakeTable subdirectory to the project
|