@@ -3,27 +3,25 @@ cmake_minimum_required(VERSION 3.12)
3
3
project (
4
4
"matplotlibcpp17"
5
5
VERSION 0.0.0
6
- DESCRIPTION "A C++ header-only plotting library based on pybind11 and matplotlib, featuring more flexibility than matplotlibcpp"
7
- HOMEPAGE_URL "https://soblin.github.io/matplotlibcpp17/ "
8
- )
6
+ DESCRIPTION
7
+ "A C++ header-only plotting library based on pybind11 and matplotlib, featuring more flexibility than matplotlibcpp "
8
+ HOMEPAGE_URL "https://soblin.github.io/matplotlibcpp17/" )
9
9
10
- find_package (Python3 COMPONENTS Interpreter Development REQUIRED )
10
+ find_package (
11
+ Python3
12
+ COMPONENTS Interpreter Development
13
+ REQUIRED )
11
14
find_package (pybind11 2.4.3 REQUIRED )
12
15
13
-
14
16
# check matplotlib minor version
15
17
execute_process (
16
- COMMAND
17
- ${Python3_EXECUTABLE} "-c"
18
- "import matplotlib;
18
+ COMMAND ${Python3_EXECUTABLE} "-c" "import matplotlib;
19
19
print(str(matplotlib.__version__), end='')"
20
20
RESULT_VARIABLE MATPLOTLIB_VERSION_CHECKING
21
- OUTPUT_VARIABLE MATPLOTLIB_VERSION
22
- )
21
+ OUTPUT_VARIABLE MATPLOTLIB_VERSION )
23
22
24
23
if (NOT MATPLOTLIB_VERSION_CHECKING MATCHES 0 )
25
- message (FATAL_ERROR
26
- "Could not check matplotlib.__version__" )
24
+ message (FATAL_ERROR "Could not check matplotlib.__version__" )
27
25
endif ()
28
26
message (STATUS "Detected matplotlib version is ${MATPLOTLIB_VERSION} " )
29
27
if (${MATPLOTLIB_VERSION} VERSION_LESS 3.4 )
34
32
set (MATPLOTLIB_MINOR_VER_GTE_4 1 )
35
33
endif ()
36
34
37
-
38
35
# gallery
39
36
if (NOT DEFINED USE_GUI )
40
37
set (USE_GUI 1 )
@@ -58,18 +55,21 @@ set(matplotlibcpp17_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include")
58
55
59
56
function (add_demo name path )
60
57
add_executable (${name} ${path} )
61
- target_include_directories (${name} PUBLIC
62
- ${Python3_INCLUDE_DIRS}
63
- ${matplotlibcpp17_INCLUDE_DIRS}
64
- )
58
+ target_include_directories (${name} PUBLIC ${Python3_INCLUDE_DIRS}
59
+ ${matplotlibcpp17_INCLUDE_DIRS} )
65
60
target_link_libraries (${name} ${Python3_LIBRARIES} pybind11::embed xtensor )
66
61
endfunction ()
67
62
68
63
if (${ADD_DEMO} )
69
- find_package (Python3 COMPONENTS NumPy REQUIRED )
64
+ find_package (
65
+ Python3
66
+ COMPONENTS NumPy
67
+ REQUIRED )
70
68
find_package (xtensor 0.24.0 REQUIRED )
71
69
set (CMAKE_CXX_STANDARD 17 )
72
- set (CMAKE_CXX_FLAGS "-Wall -g -DUSE_GUI=${USE_GUI} -DMATPLOTLIB_MINOR_VER_GTE_4=${MATPLOTLIB_MINOR_VER_GTE_4} " )
70
+ set (CMAKE_CXX_FLAGS
71
+ "-Wall -g -DUSE_GUI=${USE_GUI} -DMATPLOTLIB_MINOR_VER_GTE_4=${MATPLOTLIB_MINOR_VER_GTE_4} "
72
+ )
73
73
add_subdirectory (gallery/lines_bars_and_markers )
74
74
add_subdirectory (gallery/subplots_axes_and_figures )
75
75
add_subdirectory (gallery/statistics )
@@ -79,7 +79,6 @@ if(${ADD_DEMO})
79
79
add_subdirectory (gallery/mplot3d )
80
80
endif ()
81
81
82
-
83
82
# test
84
83
enable_testing ()
85
84
if (NOT DEFINED DO_TEST )
@@ -89,63 +88,51 @@ if(${DO_TEST})
89
88
add_subdirectory (tests )
90
89
endif ()
91
90
92
-
93
- # install
94
- ## https://dominikberner.ch/cmake-interface-lib/
91
+ # install https://dominikberner.ch/cmake-interface-lib/
95
92
include (GNUInstallDirs )
96
93
add_library (${PROJECT_NAME} INTERFACE )
97
- target_include_directories (${PROJECT_NAME}
98
- INTERFACE
99
- $< BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>
100
- $< INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >
101
- )
94
+ target_include_directories (
95
+ ${PROJECT_NAME}
96
+ INTERFACE $< BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>
97
+ $< INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} > )
102
98
target_compile_features (${PROJECT_NAME} INTERFACE cxx_std_17 )
103
- install (TARGETS ${PROJECT_NAME}
99
+ install (
100
+ TARGETS ${PROJECT_NAME}
104
101
EXPORT ${PROJECT_NAME} _Targets
105
102
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
106
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
107
- )
103
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} )
108
104
include (CMakePackageConfigHelpers )
109
- write_basic_package_version_file ("${PROJECT_NAME} ConfigVersion.cmake"
105
+ write_basic_package_version_file (
106
+ "${PROJECT_NAME} ConfigVersion.cmake"
110
107
VERSION ${PROJECT_VERSION}
111
- COMPATIBILITY SameMajorVersion
112
- )
108
+ COMPATIBILITY SameMajorVersion )
113
109
configure_package_config_file (
114
110
"${PROJECT_SOURCE_DIR} /cmake/${PROJECT_NAME} Config.cmake.in"
115
111
"${PROJECT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
116
- INSTALL_DESTINATION
117
- ${CMAKE_INSTALL_DATAROOTDIR} /cmake/${PROJECT_NAME}
118
- )
112
+ INSTALL_DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} /cmake/${PROJECT_NAME} )
119
113
# to /share/cmake/matplotlibcpp17
120
- install (FILES
121
- "${PROJECT_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake"
122
- "${PROJECT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
123
- DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} /cmake/${PROJECT_NAME}
124
- )
114
+ install (FILES "${PROJECT_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake"
115
+ "${PROJECT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
116
+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} /cmake/${PROJECT_NAME} )
125
117
# to /share/cmake/matplotlibcpp17
126
- install (EXPORT ${PROJECT_NAME} _Targets
118
+ install (
119
+ EXPORT ${PROJECT_NAME} _Targets
127
120
FILE ${PROJECT_NAME} Targets.cmake
128
121
NAMESPACE ${PROJECT_NAME} ::
129
- DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} /cmake/${PROJECT_NAME}
130
- )
122
+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} /cmake/${PROJECT_NAME} )
131
123
# to /include/matplotlibcpp17
132
124
install (DIRECTORY ${PROJECT_SOURCE_DIR} /include/${PROJECT_NAME}
133
- DESTINATION include
134
- )
125
+ DESTINATION include )
135
126
set (CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR} /LICENSE" )
136
127
# create .deb
137
128
include ("${PROJECT_SOURCE_DIR} /cmake/package.cmake" )
138
129
139
- # uninstall target
140
- ## actually it's just `xargs rm < install_manifest.txt`
141
- ## https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#can-i-do-make-uninstall-with-cmake
130
+ # uninstall target. actually it's just `xargs rm < install_manifest.txt`
131
+ # https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#can-i-do-make-uninstall-with-cmake
142
132
if (NOT TARGET uninstall )
143
- configure_file (
144
- "${CMAKE_CURRENT_SOURCE_DIR} /cmake/uninstall.cmake.in"
145
- "${CMAKE_CURRENT_BINARY_DIR} /uninstall.cmake"
146
- IMMEDIATE @ONLY
147
- )
148
- add_custom_target (uninstall
149
- COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR} /uninstall.cmake
150
- )
133
+ configure_file ("${CMAKE_CURRENT_SOURCE_DIR} /cmake/uninstall.cmake.in"
134
+ "${CMAKE_CURRENT_BINARY_DIR} /uninstall.cmake" IMMEDIATE @ONLY )
135
+ add_custom_target (
136
+ uninstall COMMAND ${CMAKE_COMMAND} -P
137
+ ${CMAKE_CURRENT_BINARY_DIR} /uninstall.cmake )
151
138
endif ()
0 commit comments