From 08446ffc1252ee4af7169923ef29a2d5eef81839 Mon Sep 17 00:00:00 2001 From: Nikunj Gupta Date: Mon, 1 Oct 2018 17:34:48 +0530 Subject: [PATCH] Adds pkg-config to build system --- CMakeLists.txt | 12 +++++++++++- cmake/mathx_GeneratePackage.cmake | 19 +++++++++++++++++++ cmake/templates/mathx.pc.in | 10 ++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 cmake/mathx_GeneratePackage.cmake create mode 100644 cmake/templates/mathx.pc.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 4666084..41adaa4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,17 @@ project(mathx CXX) # Include header files include_directories(mathx) -add_subdirectory(src) +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake") + +include(mathx_GeneratePackage) + +# add_subdirectory(src) + +# Find source files +file(GLOB SOURCES src/*.cpp) + +# Create shared library +add_library(${PROJECT_NAME} SHARED ${SOURCES}) # Install library install(TARGETS ${PROJECT_NAME} DESTINATION lib) diff --git a/cmake/mathx_GeneratePackage.cmake b/cmake/mathx_GeneratePackage.cmake new file mode 100644 index 0000000..2e0b0af --- /dev/null +++ b/cmake/mathx_GeneratePackage.cmake @@ -0,0 +1,19 @@ +include(CMakePackageConfigHelpers) + +# Get the include directories we need ... +get_directory_property(_INCLUDE_DIRS INCLUDE_DIRECTORIES) + +set(MATHX_CONF_PREFIX ${CMAKE_INSTALL_PREFIX}/lib/libmathx.so) +set(CXX_FLAGS CMAKE_CXX_FLAGS) + +configure_file(cmake/templates/mathx.pc.in + "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/mathx.pc" + ESCAPE_QUOTES @ONLY) + + +install( + FILES + "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/mathx.pc" + DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig + COMPONENT pkgconfig +) \ No newline at end of file diff --git a/cmake/templates/mathx.pc.in b/cmake/templates/mathx.pc.in new file mode 100644 index 0000000..d9de7c9 --- /dev/null +++ b/cmake/templates/mathx.pc.in @@ -0,0 +1,10 @@ +prefix=@MATHX_CONF_PREFIX@ +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${exec_prefix}/include + +Name: mathx +Description: +Version: 1.0 +Libs: @CXX_FLAG@ -L${libdir} @MATHX_CONF_PREFIX@ +Cflags: @CXX_FLAG@