summaryrefslogtreecommitdiffstats
path: root/Help/guide/importing-exporting/MathFunctions
diff options
context:
space:
mode:
authorBetsy McPhail <betsy.mcphail@kitware.com>2020-08-03 21:25:12 (GMT)
committerBrad King <brad.king@kitware.com>2020-09-11 12:50:52 (GMT)
commit3310801aabbdcd32f82433fbd04237a1ab1744d4 (patch)
tree976a72a5cabaf12d5f74be29f4b1e5df229dbab5 /Help/guide/importing-exporting/MathFunctions
parent5b3644fba6b3a9eb56070d8ba8f3b9b6281ba62b (diff)
downloadCMake-3310801aabbdcd32f82433fbd04237a1ab1744d4.zip
CMake-3310801aabbdcd32f82433fbd04237a1ab1744d4.tar.gz
CMake-3310801aabbdcd32f82433fbd04237a1ab1744d4.tar.bz2
Help: Add Importing and Exporting Guide
Diffstat (limited to 'Help/guide/importing-exporting/MathFunctions')
-rw-r--r--Help/guide/importing-exporting/MathFunctions/CMakeLists.txt75
-rw-r--r--Help/guide/importing-exporting/MathFunctions/Config.cmake.in5
-rw-r--r--Help/guide/importing-exporting/MathFunctions/MathFunctions.cxx10
-rw-r--r--Help/guide/importing-exporting/MathFunctions/MathFunctions.h5
4 files changed, 95 insertions, 0 deletions
diff --git a/Help/guide/importing-exporting/MathFunctions/CMakeLists.txt b/Help/guide/importing-exporting/MathFunctions/CMakeLists.txt
new file mode 100644
index 0000000..13c82dd
--- /dev/null
+++ b/Help/guide/importing-exporting/MathFunctions/CMakeLists.txt
@@ -0,0 +1,75 @@
+cmake_minimum_required(VERSION 3.15)
+project(MathFunctions)
+
+# specify the C++ standard
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD_REQUIRED True)
+
+# create library
+add_library(MathFunctions STATIC MathFunctions.cxx)
+
+# add include directories
+target_include_directories(MathFunctions
+ PUBLIC
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
+ "$<INSTALL_INTERFACE:include>"
+)
+
+# install the target and create export-set
+install(TARGETS MathFunctions
+ EXPORT MathFunctionsTargets
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin
+ INCLUDES DESTINATION include
+)
+
+# install header file
+install(FILES MathFunctions.h DESTINATION include)
+
+# generate and install export file
+install(EXPORT MathFunctionsTargets
+ FILE MathFunctionsTargets.cmake
+ NAMESPACE MathFunctions::
+ DESTINATION lib/cmake
+)
+
+# include CMakePackageConfigHelpers macro
+include(CMakePackageConfigHelpers)
+
+# set version
+set(version 3.4.1)
+
+set_property(TARGET MathFunctions PROPERTY VERSION ${version})
+set_property(TARGET MathFunctions PROPERTY SOVERSION 3)
+set_property(TARGET MathFunctions PROPERTY
+ INTERFACE_MathFunctions_MAJOR_VERSION 3)
+set_property(TARGET MathFunctions APPEND PROPERTY
+ COMPATIBLE_INTERFACE_STRING MathFunctions_MAJOR_VERSION
+)
+
+# 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 lib/cmake
+)
+
+# install config files
+install(FILES
+ "${CMAKE_CURRENT_BINARY_DIR}/MathFunctionsConfig.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/MathFunctionsConfigVersion.cmake"
+ DESTINATION lib/cmake
+)
+
+# generate the export targets for the build tree
+export(EXPORT MathFunctionsTargets
+ FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/MathFunctionsTargets.cmake"
+ NAMESPACE MathFunctions::
+)
diff --git a/Help/guide/importing-exporting/MathFunctions/Config.cmake.in b/Help/guide/importing-exporting/MathFunctions/Config.cmake.in
new file mode 100644
index 0000000..eba1ff6
--- /dev/null
+++ b/Help/guide/importing-exporting/MathFunctions/Config.cmake.in
@@ -0,0 +1,5 @@
+@PACKAGE_INIT@
+
+include("${CMAKE_CURRENT_LIST_DIR}/MathFunctionsTargets.cmake")
+
+check_required_components(MathFunctions)
diff --git a/Help/guide/importing-exporting/MathFunctions/MathFunctions.cxx b/Help/guide/importing-exporting/MathFunctions/MathFunctions.cxx
new file mode 100644
index 0000000..e75fe74
--- /dev/null
+++ b/Help/guide/importing-exporting/MathFunctions/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/MathFunctions/MathFunctions.h b/Help/guide/importing-exporting/MathFunctions/MathFunctions.h
new file mode 100644
index 0000000..b38596d
--- /dev/null
+++ b/Help/guide/importing-exporting/MathFunctions/MathFunctions.h
@@ -0,0 +1,5 @@
+#pragma once
+
+namespace MathFunctions {
+double sqrt(double x);
+}