Skip to content
Snippets Groups Projects
Commit 62861231 authored by soblin's avatar soblin
Browse files

make install looks working

parent 811479c4
Branches
No related tags found
No related merge requests found
project(matplotlibcpp17)
cmake_minimum_required(VERSION 3.12)
project(
"matplotlibcpp17"
VERSION 0.0.0
DESCRIPTION "A C++ header-only plotting library based on pybind11 and matplotlib, featuring more flexibility than matplotlibcpp"
HOMEPAGE_URL "https://soblin.github.io/matplotlibcpp17/"
)
find_package(Python3 COMPONENTS Interpreter Development NumPy)
find_package(pybind11 REQUIRED)
if(NOT DEFINED ADD_DEMO)
set(ADD_DEMO ON)
endif()
set(matplotlibcpp17_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include")
# gallery
if(NOT DEFINED USE_GUI)
set(USE_GUI 0)
endif()
set(matplotlibcpp17_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include")
if(NOT DEFINED ADD_DEMO)
set(ADD_DEMO ON)
endif()
function(add_demo name path)
add_executable(${name} ${path})
......@@ -39,10 +45,52 @@ if(${ADD_DEMO})
add_subdirectory(gallery/mplot3d)
endif()
# test
if(NOT DEFINED DO_TEST)
set(DO_TEST ON)
endif()
if(${DO_TEST})
add_subdirectory(tests)
endif()
# install
## https://dominikberner.ch/cmake-interface-lib/
include(GNUInstallDirs)
add_library(${PROJECT_NAME} INTERFACE)
target_include_directories(${PROJECT_NAME}
INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)
target_compile_features(${PROJECT_NAME} INTERFACE cxx_std_17)
install(TARGETS ${PROJECT_NAME}
EXPORT ${PROJECT_NAME}_Targets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
include(CMakePackageConfigHelpers)
write_basic_package_version_file("${PROJECT_NAME}ConfigVersion.cmake"
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion
)
configure_package_config_file(
"${PROJECT_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake.in"
"${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
INSTALL_DESTINATION
${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake
)
install(EXPORT ${PROJECT_NAME}_Targets
FILE ${PROJECT_NAME}Targets.cmake
NAMESPACE ${PROJECT_NAME}::
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake
)
install(FILES
"${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
"${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/cmake
)
install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}
DESTINATION include
)
@PACKAGE_INIT@
include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake")
check_required_components("@PROJECT_NAME@")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment