diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2021-10-08 09:14:18 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2021-10-08 09:14:18 +0900 |
commit | d40909a98298a97d879ceeb3b29dcdc858e85628 (patch) | |
tree | 0a9255654a9376c5e9f29aa53d15f0ae173751a0 /Help/guide/tutorial/MultiPackage/MathFunctions/CMakeLists.txt | |
parent | c5223aaf98b2d10aee32aa614519ee7a23698998 (diff) | |
download | cmake-d40909a98298a97d879ceeb3b29dcdc858e85628.tar.gz cmake-d40909a98298a97d879ceeb3b29dcdc858e85628.tar.bz2 cmake-d40909a98298a97d879ceeb3b29dcdc858e85628.zip |
Imported Upstream version 3.16.0upstream/3.16.0
Diffstat (limited to 'Help/guide/tutorial/MultiPackage/MathFunctions/CMakeLists.txt')
-rw-r--r-- | Help/guide/tutorial/MultiPackage/MathFunctions/CMakeLists.txt | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/Help/guide/tutorial/MultiPackage/MathFunctions/CMakeLists.txt b/Help/guide/tutorial/MultiPackage/MathFunctions/CMakeLists.txt new file mode 100644 index 000000000..a2df2a732 --- /dev/null +++ b/Help/guide/tutorial/MultiPackage/MathFunctions/CMakeLists.txt @@ -0,0 +1,59 @@ +# add the library that runs +add_library(MathFunctions MathFunctions.cxx) + +# state that anybody linking to us needs to include the current source dir +# to find MathFunctions.h, while we don't. +target_include_directories(MathFunctions + INTERFACE + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> + $<INSTALL_INTERFACE:include> + ) + +# should we use our own math functions +option(USE_MYMATH "Use tutorial provided math implementation" ON) +if(USE_MYMATH) + + target_compile_definitions(MathFunctions PRIVATE "USE_MYMATH") + + # first we add the executable that generates the table + add_executable(MakeTable MakeTable.cxx) + + # add the command to generate the source code + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/Table.h + COMMAND MakeTable ${CMAKE_CURRENT_BINARY_DIR}/Table.h + DEPENDS MakeTable + ) + + # library that just does sqrt + add_library(SqrtLibrary STATIC + mysqrt.cxx + ${CMAKE_CURRENT_BINARY_DIR}/Table.h + ) + + # state that we depend on our binary dir to find Table.h + target_include_directories(SqrtLibrary PRIVATE + ${CMAKE_CURRENT_BINARY_DIR} + ) + + # state that SqrtLibrary need PIC when the default is shared libraries + set_target_properties(SqrtLibrary PROPERTIES + POSITION_INDEPENDENT_CODE ${BUILD_SHARED_LIBS} + ) + + target_link_libraries(MathFunctions PRIVATE SqrtLibrary) +endif() + +# define the symbol stating we are using the declspec(dllexport) when +# building on windows +target_compile_definitions(MathFunctions PRIVATE "EXPORTING_MYMATH") + +# setup the version numbering +set_property(TARGET MathFunctions PROPERTY VERSION "1.0.0") +set_property(TARGET MathFunctions PROPERTY SOVERSION "1") + +# install rules +install(TARGETS MathFunctions + DESTINATION lib + EXPORT MathFunctionsTargets) +install(FILES MathFunctions.h DESTINATION include) |