From e39c79fb45f9cc897c4c994c0b170a9f4401baf4 Mon Sep 17 00:00:00 2001 From: Sebastian Eibl <sebastian.eibl@mpcdf.mpg.de> Date: Mon, 11 Jul 2022 10:47:44 +0200 Subject: [PATCH] reworked find_package --- 02_find_package/CMakeLists.txt | 10 +++++----- 02_find_package/app/main.cpp | 7 +++---- 02_find_package/cmake/FindMath.cmake | 28 ++++++++++++++-------------- 02_find_package/math/Makefile | 2 ++ 02_find_package/math/include/add.hpp | 3 +++ 02_find_package/math/src/add.cpp | 3 +++ 6 files changed, 30 insertions(+), 23 deletions(-) create mode 100644 02_find_package/math/Makefile create mode 100644 02_find_package/math/include/add.hpp create mode 100644 02_find_package/math/src/add.cpp diff --git a/02_find_package/CMakeLists.txt b/02_find_package/CMakeLists.txt index f268920..2e70eae 100644 --- a/02_find_package/CMakeLists.txt +++ b/02_find_package/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.20) -project(01_find_package +project(02_find_package LANGUAGES CXX) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") @@ -8,8 +8,8 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") ########################## # EXECUTABLE ########################## -find_package(Integrator REQUIRED) +find_package(Math REQUIRED) -add_executable(calc_pi) -target_sources(calc_pi PRIVATE app/main.cpp) -target_link_libraries(calc_pi PRIVATE Integrator::Integrator) +add_executable(calculator) +target_sources(calculator PRIVATE app/main.cpp) +target_link_libraries(calculator PRIVATE Math::Math) diff --git a/02_find_package/app/main.cpp b/02_find_package/app/main.cpp index 2000da8..0295c87 100644 --- a/02_find_package/app/main.cpp +++ b/02_find_package/app/main.cpp @@ -1,9 +1,8 @@ -#include <integrator/mc_pi.hpp> +#include <add.hpp> #include <iostream> -int main(int argc, char** argv) +int main(int /*argc*/, char** /*argv*/) { - if (argc != 2) exit(EXIT_FAILURE); - std::cout << calcPI(std::stoll(argv[1])) << std::endl; + std::cout << add(2, 3) << std::endl; exit(EXIT_SUCCESS); } diff --git a/02_find_package/cmake/FindMath.cmake b/02_find_package/cmake/FindMath.cmake index c7f303b..8234d3d 100644 --- a/02_find_package/cmake/FindMath.cmake +++ b/02_find_package/cmake/FindMath.cmake @@ -1,22 +1,22 @@ -find_path(Integrator_INCLUDE_DIR integrator/mc_pi.hpp) -find_library(Integrator_LIBRARY Integrator) +find_path(Math_INCLUDE_DIR add.hpp) +find_library(Math_LIBRARY math) include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Integrator DEFAULT_MSG - Integrator_INCLUDE_DIR Integrator_LIBRARY) +find_package_handle_standard_args(Math DEFAULT_MSG + Math_INCLUDE_DIR Math_LIBRARY) -if (Integrator_FOUND) - set(Integrator_LIBRARIES ${Integrator_LIBRARY}) - set(Integrator_INCLUDE_DIRS ${Integrator_INCLUDE_DIR}) - if (NOT TARGET Integrator::Integrator) - add_library(Integrator::Integrator UNKNOWN IMPORTED) - set_target_properties(Integrator::Integrator PROPERTIES - IMPORTED_LOCATION "${Integrator_LIBRARY}") - target_include_directories(Integrator::Integrator INTERFACE "${Integrator_INCLUDE_DIR}") +if (Math_FOUND) + set(Math_LIBRARIES ${Math_LIBRARY}) + set(Math_INCLUDE_DIRS ${Math_INCLUDE_DIR}) + if (NOT TARGET Math::Math) + add_library(Math::Math UNKNOWN IMPORTED) + set_target_properties(Math::Math PROPERTIES + IMPORTED_LOCATION "${Math_LIBRARY}") + target_include_directories(Math::Math INTERFACE "${Math_INCLUDE_DIR}") endif () endif () mark_as_advanced( - Integrator_INCLUDE_DIR - Integrator_LIBRARY + Math_INCLUDE_DIR + Math_LIBRARY ) \ No newline at end of file diff --git a/02_find_package/math/Makefile b/02_find_package/math/Makefile new file mode 100644 index 0000000..ea4e8cc --- /dev/null +++ b/02_find_package/math/Makefile @@ -0,0 +1,2 @@ +all: + $(CC) -shared -fPIC -Iinclude -o lib/libmath.so src/add.cpp diff --git a/02_find_package/math/include/add.hpp b/02_find_package/math/include/add.hpp new file mode 100644 index 0000000..46e67ab --- /dev/null +++ b/02_find_package/math/include/add.hpp @@ -0,0 +1,3 @@ +#pragma once + +int add(const int lhs, const int rhs); \ No newline at end of file diff --git a/02_find_package/math/src/add.cpp b/02_find_package/math/src/add.cpp new file mode 100644 index 0000000..ee7e742 --- /dev/null +++ b/02_find_package/math/src/add.cpp @@ -0,0 +1,3 @@ +#include "add.hpp" + +int add(const int lhs, const int rhs) { return lhs + rhs; } \ No newline at end of file -- GitLab