@@ -68,23 +68,8 @@ ELSE(WIN32)
6868 SET (LINK create_symlink)
6969ENDIF (WIN32 )
7070
71- set (PYTHON_COMPONENTS Interpreter)
72- if (CMAKE_VERSION VERSION_LESS "3.18" )
73- # Development.Module only require headers, so it's best for our module
74- # But it's not available before CMake 3.18
75- set (PYTHON_COMPONENTS ${PYTHON_COMPONENTS} Development)
76- else ()
77- set (PYTHON_COMPONENTS ${PYTHON_COMPONENTS} Development.Module)
78- endif ()
79- if (NOT CMAKE_VERSION VERSION_LESS "3.14" )
80- # NumPy provides a standard CMake imported target,
81- # But it's not available before CMake 3.14
82- set (PYTHON_COMPONENTS ${PYTHON_COMPONENTS} NumPy)
83- endif ()
71+ set (PYTHON_COMPONENTS Interpreter Development.Module NumPy)
8472FINDPYTHON()
85- if (CMAKE_VERSION VERSION_LESS "3.14" )
86- FIND_NUMPY()
87- endif ()
8873
8974IF (WIN32 )
9075 LINK_DIRECTORIES (${PYTHON_LIBRARY_DIRS} )
@@ -218,19 +203,10 @@ TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME}
218203 $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR} /include >
219204 $<INSTALL_INTERFACE:include >)
220205
221- if (TARGET Eigen3::Eigen)
222- TARGET_LINK_LIBRARIES (${PROJECT_NAME} PUBLIC Eigen3::Eigen)
223- else ()
224- TARGET_INCLUDE_DIRECTORIES (${PROJECT_NAME} SYSTEM PUBLIC ${EIGEN3_INCLUDE_DIR} )
225- endif ()
206+ MODERNIZE_LINK(${PROJECT_NAME} SCOPE PUBLIC TARGETS Eigen3::Eigen INCLUDE_DIRS ${EIGEN3_INCLUDE_DIR} )
226207
227- if (TARGET Python3::NumPy)
228- TARGET_LINK_LIBRARIES (${PROJECT_NAME} PUBLIC Python3::NumPy)
229- TARGET_INCLUDE_DIRECTORIES (${PROJECT_NAME} SYSTEM PRIVATE ${Python3_INCLUDE_DIRS} )
230- else ()
231- TARGET_INCLUDE_DIRECTORIES (${PROJECT_NAME} SYSTEM PUBLIC ${NUMPY_INCLUDE_DIRS} )
232- TARGET_INCLUDE_DIRECTORIES (${PROJECT_NAME} SYSTEM PRIVATE ${PYTHON_INCLUDE_DIRS} )
233- endif ()
208+ MODERNIZE_LINK(${PROJECT_NAME} SCOPE PUBLIC TARGETS Python3::NumPy INCLUDE_DIRS ${NUMPY_INCLUDE_DIR} )
209+ TARGET_INCLUDE_DIRECTORIES (${PROJECT_NAME} SYSTEM PRIVATE ${PYTHON_INCLUDE_DIRS} )
234210
235211IF (SUFFIX_SO_VERSION)
236212 SET_TARGET_PROPERTIES (${PROJECT_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION} )
@@ -242,12 +218,7 @@ ELSE()
242218 TARGET_COMPILE_OPTIONS (${PROJECT_NAME} PRIVATE $<$<CXX_COMPILER_ID:MSVC >:-bigobj>)
243219ENDIF ()
244220
245- if (TARGET Boost::python3${Python3_VERSION_MINOR} AND NOT APPLE )
246- TARGET_LINK_LIBRARIES (${PROJECT_NAME} PUBLIC Boost::python3${Python3_VERSION_MINOR} )
247- else ()
248- TARGET_LINK_BOOST_PYTHON(${PROJECT_NAME} PUBLIC )
249- TARGET_INCLUDE_DIRECTORIES (${PROJECT_NAME} SYSTEM PUBLIC ${Boost_INCLUDE_DIRS} )
250- endif ()
221+ TARGET_LINK_BOOST_PYTHON(${PROJECT_NAME} PUBLIC )
251222INSTALL (TARGETS ${PROJECT_NAME}
252223 EXPORT ${TARGETS_EXPORT_NAME}
253224 PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}
0 commit comments