summaryrefslogtreecommitdiffstats
path: root/Help/guide/importing-exporting/MathFunctionsComponents
diff options
context:
space:
mode:
Diffstat (limited to 'Help/guide/importing-exporting/MathFunctionsComponents')
-rw-r--r--Help/guide/importing-exporting/MathFunctionsComponents/Addition/Addition.cxx8
-rw-r--r--Help/guide/importing-exporting/MathFunctionsComponents/Addition/Addition.h5
-rw-r--r--Help/guide/importing-exporting/MathFunctionsComponents/Addition/CMakeLists.txt30
-rw-r--r--Help/guide/importing-exporting/MathFunctionsComponents/CMakeLists.txt39
-rw-r--r--Help/guide/importing-exporting/MathFunctionsComponents/Config.cmake.in11
-rw-r--r--Help/guide/importing-exporting/MathFunctionsComponents/MathFunctions.cxx10
-rw-r--r--Help/guide/importing-exporting/MathFunctionsComponents/MathFunctions.h5
-rw-r--r--Help/guide/importing-exporting/MathFunctionsComponents/SquareRoot/CMakeLists.txt30
-rw-r--r--Help/guide/importing-exporting/MathFunctionsComponents/SquareRoot/SquareRoot.cxx10
-rw-r--r--Help/guide/importing-exporting/MathFunctionsComponents/SquareRoot/SquareRoot.h5
10 files changed, 153 insertions, 0 deletions
diff --git a/Help/guide/importing-exporting/MathFunctionsComponents/Addition/Addition.cxx b/Help/guide/importing-exporting/MathFunctionsComponents/Addition/Addition.cxx
new file mode 100644
index 0000000..0a6b98b
--- /dev/null
+++ b/Help/guide/importing-exporting/MathFunctionsComponents/Addition/Addition.cxx
@@ -0,0 +1,8 @@
+#include "Addition.h"
+
+namespace MathFunctions {
+double add(double x, double y)
+{
+ return x + y;
+}
+}
diff --git a/Help/guide/importing-exporting/MathFunctionsComponents/Addition/Addition.h b/Help/guide/importing-exporting/MathFunctionsComponents/Addition/Addition.h
new file mode 100644
index 0000000..b061d5e
--- /dev/null
+++ b/Help/guide/importing-exporting/MathFunctionsComponents/Addition/Addition.h
@@ -0,0 +1,5 @@
+#pragma once
+
+namespace MathFunctions {
+double add(double x, double y);
+}
diff --git a/Help/guide/importing-exporting/MathFunctionsComponents/Addition/CMakeLists.txt b/Help/guide/importing-exporting/MathFunctionsComponents/Addition/CMakeLists.txt
new file mode 100644
index 0000000..9de935e
--- /dev/null
+++ b/Help/guide/importing-exporting/MathFunctionsComponents/Addition/CMakeLists.txt
@@ -0,0 +1,30 @@
+# create library
+add_library(Addition STATIC Addition.cxx)
+
+add_library(MathFunctions::Addition ALIAS Addition)
+
+# add include directories
+target_include_directories(Addition
+ PUBLIC
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
+)
+
+# install the target and create export-set
+install(TARGETS Addition
+ EXPORT AdditionTargets
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+)
+
+# install header file
+install(FILES Addition.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+
+# generate and install export file
+install(EXPORT AdditionTargets
+ FILE MathFunctionsAdditionTargets.cmake
+ NAMESPACE MathFunctions::
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/MathFunctions
+)
diff --git a/Help/guide/importing-exporting/MathFunctionsComponents/CMakeLists.txt b/Help/guide/importing-exporting/MathFunctionsComponents/CMakeLists.txt
new file mode 100644
index 0000000..90ee89f
--- /dev/null
+++ b/Help/guide/importing-exporting/MathFunctionsComponents/CMakeLists.txt
@@ -0,0 +1,39 @@
+cmake_minimum_required(VERSION 3.15)
+project(MathFunctionsComponents)
+
+# make cache variables for install destinations
+include(GNUInstallDirs)
+
+# specify the C++ standard
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD_REQUIRED True)
+
+add_subdirectory(Addition)
+add_subdirectory(SquareRoot)
+
+# include CMakePackageConfigHelpers macro
+include(CMakePackageConfigHelpers)
+
+# set version
+set(version 3.4.1)
+
+# generate the version file for the config file
+write_basic_package_version_file(
+ "${CMAKE_CURRENT_BINARY_DIR}/MathFunctionsConfigVersion.cmake"
+ VERSION "${version}"
+ COMPATIBILITY AnyNewerVersion
+)
+
+# create config file
+configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in
+ "${CMAKE_CURRENT_BINARY_DIR}/MathFunctionsConfig.cmake"
+ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/MathFunctions
+ NO_CHECK_REQUIRED_COMPONENTS_MACRO
+)
+
+# install config files
+install(FILES
+ "${CMAKE_CURRENT_BINARY_DIR}/MathFunctionsConfig.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/MathFunctionsConfigVersion.cmake"
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/MathFunctions
+)
diff --git a/Help/guide/importing-exporting/MathFunctionsComponents/Config.cmake.in b/Help/guide/importing-exporting/MathFunctionsComponents/Config.cmake.in
new file mode 100644
index 0000000..a535969
--- /dev/null
+++ b/Help/guide/importing-exporting/MathFunctionsComponents/Config.cmake.in
@@ -0,0 +1,11 @@
+@PACKAGE_INIT@
+
+set(_MathFunctions_supported_components Addition SquareRoot)
+
+foreach(_comp ${MathFunctions_FIND_COMPONENTS})
+ if (NOT _comp IN_LIST _MathFunctions_supported_components)
+ set(MathFunctions_FOUND False)
+ set(MathFunctions_NOT_FOUND_MESSAGE "Unsupported component: ${_comp}")
+ endif()
+ include("${CMAKE_CURRENT_LIST_DIR}/MathFunctions${_comp}Targets.cmake")
+endforeach()
diff --git a/Help/guide/importing-exporting/MathFunctionsComponents/MathFunctions.cxx b/Help/guide/importing-exporting/MathFunctionsComponents/MathFunctions.cxx
new file mode 100644
index 0000000..e75fe74
--- /dev/null
+++ b/Help/guide/importing-exporting/MathFunctionsComponents/MathFunctions.cxx
@@ -0,0 +1,10 @@
+#include "MathFunctions.h"
+
+#include <cmath>
+
+namespace MathFunctions {
+double sqrt(double x)
+{
+ return std::sqrt(x);
+}
+}
diff --git a/Help/guide/importing-exporting/MathFunctionsComponents/MathFunctions.h b/Help/guide/importing-exporting/MathFunctionsComponents/MathFunctions.h
new file mode 100644
index 0000000..b38596d
--- /dev/null
+++ b/Help/guide/importing-exporting/MathFunctionsComponents/MathFunctions.h
@@ -0,0 +1,5 @@
+#pragma once
+
+namespace MathFunctions {
+double sqrt(double x);
+}
diff --git a/Help/guide/importing-exporting/MathFunctionsComponents/SquareRoot/CMakeLists.txt b/Help/guide/importing-exporting/MathFunctionsComponents/SquareRoot/CMakeLists.txt
new file mode 100644
index 0000000..517c5e2
--- /dev/null
+++ b/Help/guide/importing-exporting/MathFunctionsComponents/SquareRoot/CMakeLists.txt
@@ -0,0 +1,30 @@
+# create library
+add_library(SquareRoot STATIC SquareRoot.cxx)
+
+add_library(MathFunctions::SquareRoot ALIAS SquareRoot)
+
+# add include directories
+target_include_directories(SquareRoot
+ PUBLIC
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
+ "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
+)
+
+# install the target and create export-set
+install(TARGETS SquareRoot
+ EXPORT SquareRootTargets
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+)
+
+# install header file
+install(FILES SquareRoot.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+
+# generate and install export file
+install(EXPORT SquareRootTargets
+ FILE MathFunctionsSquareRootTargets.cmake
+ NAMESPACE MathFunctions::
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/MathFunctions
+)
diff --git a/Help/guide/importing-exporting/MathFunctionsComponents/SquareRoot/SquareRoot.cxx b/Help/guide/importing-exporting/MathFunctionsComponents/SquareRoot/SquareRoot.cxx
new file mode 100644
index 0000000..29c0c4a
--- /dev/null
+++ b/Help/guide/importing-exporting/MathFunctionsComponents/SquareRoot/SquareRoot.cxx
@@ -0,0 +1,10 @@
+#include "SquareRoot.h"
+
+#include <cmath>
+
+namespace MathFunctions {
+double sqrt(double x)
+{
+ return std::sqrt(x);
+}
+}
diff --git a/Help/guide/importing-exporting/MathFunctionsComponents/SquareRoot/SquareRoot.h b/Help/guide/importing-exporting/MathFunctionsComponents/SquareRoot/SquareRoot.h
new file mode 100644
index 0000000..b38596d
--- /dev/null
+++ b/Help/guide/importing-exporting/MathFunctionsComponents/SquareRoot/SquareRoot.h
@@ -0,0 +1,5 @@
+#pragma once
+
+namespace MathFunctions {
+double sqrt(double x);
+}