@@ -2,62 +2,74 @@ cmake_minimum_required(VERSION 3.12)
2
2
3
3
project (
4
4
"matplotlibcpp17"
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
- )
5
+ VERSION 1 .0.0
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;
19
- print(str(matplotlib.__version__))"
18
+ COMMAND ${Python3_EXECUTABLE} "-c" "import matplotlib;
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 )
30
28
message (WARNING "Detected matplotlib version is < 3.4.0" )
31
29
set (MATPLOTLIB_MINOR_VER_GTE_4 0 )
32
30
else ()
31
+ message (STATUS "Detected matplotlib version is >= 3.4.0" )
33
32
set (MATPLOTLIB_MINOR_VER_GTE_4 1 )
34
33
endif ()
35
34
36
-
37
35
# gallery
38
36
if (NOT DEFINED USE_GUI )
39
37
set (USE_GUI 1 )
38
+ message (STATUS "USE_GUI = ON" )
40
39
endif ()
41
40
if (NOT DEFINED ADD_DEMO )
42
41
set (ADD_DEMO 1 )
43
42
endif ()
43
+ if (USE_GUI )
44
+ message (STATUS "USE_GUI = ON" )
45
+ else ()
46
+ message (STATUS "USE_GUI = OFF" )
47
+ endif ()
48
+ if (ADD_DEMO )
49
+ message (STATUS "ADD_DEMO = ON" )
50
+ else ()
51
+ message (STATUS "ADD_DEMO = OFF" )
52
+ endif ()
44
53
45
54
set (matplotlibcpp17_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR} /include" )
46
55
47
56
function (add_demo name path )
48
57
add_executable (${name} ${path} )
49
- target_include_directories (${name} PUBLIC
50
- ${Python3_INCLUDE_DIRS}
51
- ${matplotlibcpp17_INCLUDE_DIRS}
52
- )
58
+ target_include_directories (${name} PUBLIC ${Python3_INCLUDE_DIRS}
59
+ ${matplotlibcpp17_INCLUDE_DIRS} )
53
60
target_link_libraries (${name} ${Python3_LIBRARIES} pybind11::embed xtensor )
54
61
endfunction ()
55
62
56
63
if (${ADD_DEMO} )
57
- find_package (Python3 COMPONENTS NumPy REQUIRED )
64
+ find_package (
65
+ Python3
66
+ COMPONENTS NumPy
67
+ REQUIRED )
58
68
find_package (xtensor 0.24.0 REQUIRED )
59
69
set (CMAKE_CXX_STANDARD 17 )
60
- 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
+ )
61
73
add_subdirectory (gallery/lines_bars_and_markers )
62
74
add_subdirectory (gallery/subplots_axes_and_figures )
63
75
add_subdirectory (gallery/statistics )
@@ -67,7 +79,6 @@ if(${ADD_DEMO})
67
79
add_subdirectory (gallery/mplot3d )
68
80
endif ()
69
81
70
-
71
82
# test
72
83
enable_testing ()
73
84
if (NOT DEFINED DO_TEST )
@@ -77,63 +88,51 @@ if(${DO_TEST})
77
88
add_subdirectory (tests )
78
89
endif ()
79
90
80
-
81
- # install
82
- ## https://dominikberner.ch/cmake-interface-lib/
91
+ # install https://dominikberner.ch/cmake-interface-lib/
83
92
include (GNUInstallDirs )
84
93
add_library (${PROJECT_NAME} INTERFACE )
85
- target_include_directories (${PROJECT_NAME}
86
- INTERFACE
87
- $< BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>
88
- $< INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >
89
- )
94
+ target_include_directories (
95
+ ${PROJECT_NAME}
96
+ INTERFACE $< BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>
97
+ $< INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} > )
90
98
target_compile_features (${PROJECT_NAME} INTERFACE cxx_std_17 )
91
- install (TARGETS ${PROJECT_NAME}
99
+ install (
100
+ TARGETS ${PROJECT_NAME}
92
101
EXPORT ${PROJECT_NAME} _Targets
93
102
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
94
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
95
- )
103
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} )
96
104
include (CMakePackageConfigHelpers )
97
- write_basic_package_version_file ("${PROJECT_NAME} ConfigVersion.cmake"
105
+ write_basic_package_version_file (
106
+ "${PROJECT_NAME} ConfigVersion.cmake"
98
107
VERSION ${PROJECT_VERSION}
99
- COMPATIBILITY SameMajorVersion
100
- )
108
+ COMPATIBILITY SameMajorVersion )
101
109
configure_package_config_file (
102
110
"${PROJECT_SOURCE_DIR} /cmake/${PROJECT_NAME} Config.cmake.in"
103
111
"${PROJECT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
104
- INSTALL_DESTINATION
105
- ${CMAKE_INSTALL_DATAROOTDIR} /cmake/${PROJECT_NAME}
106
- )
112
+ INSTALL_DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} /cmake/${PROJECT_NAME} )
107
113
# to /share/cmake/matplotlibcpp17
108
- install (FILES
109
- "${PROJECT_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake"
110
- "${PROJECT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
111
- DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} /cmake/${PROJECT_NAME}
112
- )
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} )
113
117
# to /share/cmake/matplotlibcpp17
114
- install (EXPORT ${PROJECT_NAME} _Targets
118
+ install (
119
+ EXPORT ${PROJECT_NAME} _Targets
115
120
FILE ${PROJECT_NAME} Targets.cmake
116
121
NAMESPACE ${PROJECT_NAME} ::
117
- DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} /cmake/${PROJECT_NAME}
118
- )
122
+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} /cmake/${PROJECT_NAME} )
119
123
# to /include/matplotlibcpp17
120
124
install (DIRECTORY ${PROJECT_SOURCE_DIR} /include/${PROJECT_NAME}
121
- DESTINATION include
122
- )
125
+ DESTINATION include )
123
126
set (CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR} /LICENSE" )
124
127
# create .deb
125
128
include ("${PROJECT_SOURCE_DIR} /cmake/package.cmake" )
126
129
127
- # uninstall target
128
- ## actually it's just `xargs rm < install_manifest.txt`
129
- ## 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
130
132
if (NOT TARGET uninstall )
131
- configure_file (
132
- "${CMAKE_CURRENT_SOURCE_DIR} /cmake/uninstall.cmake.in"
133
- "${CMAKE_CURRENT_BINARY_DIR} /uninstall.cmake"
134
- IMMEDIATE @ONLY
135
- )
136
- add_custom_target (uninstall
137
- COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR} /uninstall.cmake
138
- )
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 )
139
138
endif ()
0 commit comments