| 123456789101112131415161718192021222324252627282930313233343536373839 | add_library(MathFunctions mysqrt.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 ${CMAKE_CURRENT_SOURCE_DIR}          )# link our compiler flags interface librarytarget_link_libraries(MathFunctions tutorial_compiler_flags)# does this system provide the log and exp functions?include(CheckCXXSourceCompiles)check_cxx_source_compiles("  #include <cmath>  int main() {    std::log(1.0);    return 0;  }" HAVE_LOG)check_cxx_source_compiles("  #include <cmath>  int main() {    std::exp(1.0);    return 0;  }" HAVE_EXP)# add compile definitionsif(HAVE_LOG AND HAVE_EXP)  target_compile_definitions(MathFunctions                             PRIVATE "HAVE_LOG" "HAVE_EXP")endif()# install libsset(installable_libs MathFunctions tutorial_compiler_flags)install(TARGETS ${installable_libs} DESTINATION lib)# install include headersinstall(FILES MathFunctions.h DESTINATION include)
 |