diff options
Diffstat (limited to 'Help/guide/tutorial/Step10/MathFunctions')
| -rw-r--r-- | Help/guide/tutorial/Step10/MathFunctions/CMakeLists.txt | 71 | ||||
| -rw-r--r-- | Help/guide/tutorial/Step10/MathFunctions/MathFunctions.h | 15 | ||||
| -rw-r--r-- | Help/guide/tutorial/Step10/MathFunctions/mysqrt.cxx | 4 | 
3 files changed, 25 insertions, 65 deletions
| diff --git a/Help/guide/tutorial/Step10/MathFunctions/CMakeLists.txt b/Help/guide/tutorial/Step10/MathFunctions/CMakeLists.txt index 0bfe20c..fa73321 100644 --- a/Help/guide/tutorial/Step10/MathFunctions/CMakeLists.txt +++ b/Help/guide/tutorial/Step10/MathFunctions/CMakeLists.txt @@ -1,55 +1,32 @@ -# add the library that runs -add_library(MathFunctions MathFunctions.cxx) +# 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 +  ) + +# add the main library +add_library(MathFunctions +            mysqrt.cxx +            ${CMAKE_CURRENT_BINARY_DIR}/Table.h +            )  # state that anybody linking to us needs to include the current source dir  # to find MathFunctions.h, while we don't. +# state that we depend on our binary dir to find Table.h  target_include_directories(MathFunctions -                           INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} -                           ) +          INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} +          PRIVATE   ${CMAKE_CURRENT_BINARY_DIR} +          ) -# should we use our own math functions -option(USE_MYMATH "Use tutorial provided math implementation" ON) -if(USE_MYMATH) +# link our compiler flags interface library +target_link_libraries(MathFunctions tutorial_compiler_flags) -  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") - -# install rules -set(installable_libs MathFunctions) -if(TARGET SqrtLibrary) -  list(APPEND installable_libs SqrtLibrary) -endif() +# install libs +set(installable_libs MathFunctions tutorial_compiler_flags)  install(TARGETS ${installable_libs} DESTINATION lib) +# install include headers  install(FILES MathFunctions.h DESTINATION include) diff --git a/Help/guide/tutorial/Step10/MathFunctions/MathFunctions.h b/Help/guide/tutorial/Step10/MathFunctions/MathFunctions.h index 3fb547b..cd36bcc 100644 --- a/Help/guide/tutorial/Step10/MathFunctions/MathFunctions.h +++ b/Help/guide/tutorial/Step10/MathFunctions/MathFunctions.h @@ -1,14 +1 @@ - -#if defined(_WIN32) -#  if defined(EXPORTING_MYMATH) -#    define DECLSPEC __declspec(dllexport) -#  else -#    define DECLSPEC __declspec(dllimport) -#  endif -#else // non windows -#  define DECLSPEC -#endif - -namespace mathfunctions { -double DECLSPEC sqrt(double x); -} +double mysqrt(double x); diff --git a/Help/guide/tutorial/Step10/MathFunctions/mysqrt.cxx b/Help/guide/tutorial/Step10/MathFunctions/mysqrt.cxx index 8153f18..7d80ee9 100644 --- a/Help/guide/tutorial/Step10/MathFunctions/mysqrt.cxx +++ b/Help/guide/tutorial/Step10/MathFunctions/mysqrt.cxx @@ -5,8 +5,6 @@  // include the generated table  #include "Table.h" -namespace mathfunctions { -namespace detail {  // a hack square root calculation using simple operations  double mysqrt(double x)  { @@ -33,5 +31,3 @@ double mysqrt(double x)    return result;  } -} -} | 
