-
Notifications
You must be signed in to change notification settings - Fork 42
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #123 from pariterre/dev
updated module imports in cmake
- Loading branch information
Showing
12 changed files
with
79 additions
and
3,260 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,65 +1,88 @@ | ||
# Include python | ||
find_package(PYTHON3 REQUIRED) | ||
mark_as_advanced(CLEAR Python3_EXECUTABLE) | ||
if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.13") | ||
project(_${EZC3D_NAME}) | ||
else() | ||
project(${EZC3D_NAME}) | ||
endif() | ||
|
||
# Include python | ||
find_package(Python3 REQUIRED | ||
COMPONENTS Interpreter Development NumPy | ||
) | ||
include_directories(${Python3_INCLUDE_DIRS}) | ||
|
||
find_package(Numpy REQUIRED) | ||
|
||
include_directories(${NUMPY_INCLUDES}) | ||
include_directories(${Python3_NumPy_INCLUDE_DIRS}) | ||
if(WIN32) | ||
link_directories(${Python3_RUNTIME_LIBRARY_DIRS}/libs) | ||
endif() | ||
# For some reasons, target_include_directories later in the file sometime fails | ||
include_directories( | ||
${EZC3D_BINARY_DIR}/include | ||
) | ||
|
||
# Add swig module | ||
set(CMAKE_SWIG_FLAGS "") | ||
set(I_SOURCE_FILE ${PROJECT_NAME}_python.i) | ||
set(I_SOURCE_FILE "${EZC3D_NAME}_python.i") | ||
|
||
set_property(SOURCE ${I_SOURCE_FILE} PROPERTY CPLUSPLUS ON) | ||
SWIG_ADD_LIBRARY(${PROJECT_NAME} TYPE MODULE LANGUAGE python SOURCES ${I_SOURCE_FILE}) | ||
swig_link_libraries(${PROJECT_NAME} ${PROJECT_NAME} ${PYTHON_LIBRARIES} ${NUMPY_LIBRARIES}) | ||
set_property(SOURCE "${I_SOURCE_FILE}" | ||
PROPERTY CPLUSPLUS ON | ||
) | ||
SWIG_ADD_LIBRARY(${PROJECT_NAME} | ||
TYPE MODULE | ||
LANGUAGE "python" | ||
SOURCES "${I_SOURCE_FILE}" | ||
) | ||
swig_link_libraries(${PROJECT_NAME} | ||
"${EZC3D_NAME}" | ||
"${Python3_LIBRARIES}" | ||
) | ||
|
||
if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.13") | ||
set(PYTHON_PROJECT_NAME ${PROJECT_NAME}) | ||
else() | ||
set(PYTHON_PROJECT_NAME _${PROJECT_NAME}) | ||
endif() | ||
|
||
# Add headers | ||
set_target_properties(_${PROJECT_NAME} PROPERTIES SWIG_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/../../include) | ||
set_target_properties(${PYTHON_PROJECT_NAME} PROPERTIES | ||
SWIG_INCLUDE_DIRECTORIES | ||
"${CMAKE_CURRENT_SOURCE_DIR}/../../include;${EZC3D_BINARY_DIR}/include" | ||
) | ||
|
||
if(APPLE) | ||
set_target_properties(_${PROJECT_NAME} PROPERTIES SUFFIX ".so") | ||
set_property(TARGET _${PROJECT_NAME} APPEND PROPERTY LINK_FLAGS "-flat_namespace -undefined suppress") | ||
set_target_properties(${PYTHON_PROJECT_NAME} PROPERTIES | ||
SUFFIX ".so") | ||
set_property(TARGET ${PYTHON_PROJECT_NAME} APPEND PROPERTY | ||
LINK_FLAGS "-flat_namespace -undefined suppress") | ||
endif() | ||
set_target_properties(_${PROJECT_NAME} PROPERTIES | ||
INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${${PROJECT_NAME}_BIN_FOLDER}") | ||
set_target_properties(_${PROJECT_NAME} PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE) | ||
set_target_properties(${PYTHON_PROJECT_NAME} PROPERTIES | ||
PREFIX "" | ||
INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${${EZC3D_NAME}_BIN_FOLDER}" | ||
INSTALL_RPATH_USE_LINK_PATH TRUE | ||
) | ||
|
||
# Install to the proper directories | ||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.py | ||
DESTINATION ${Python3_SITELIB}/${PROJECT_NAME} | ||
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/${EZC3D_NAME}.py" | ||
DESTINATION "${Python3_SITELIB}/${EZC3D_NAME}" | ||
) | ||
|
||
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/__init__.py | ||
DESTINATION ${Python3_SITELIB}/${PROJECT_NAME} | ||
INSTALL(FILES "${CMAKE_CURRENT_SOURCE_DIR}/__init__.py" | ||
DESTINATION "${Python3_SITELIB}/${EZC3D_NAME}" | ||
) | ||
|
||
|
||
# Create the version file | ||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/_version.py.in ${CMAKE_CURRENT_BINARY_DIR}/_version.py) | ||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/_version.py | ||
DESTINATION ${Python3_SITELIB}/${PROJECT_NAME} | ||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/_version.py.in" | ||
"${CMAKE_CURRENT_BINARY_DIR}/_version.py" | ||
) | ||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/_version.py" | ||
DESTINATION "${Python3_SITELIB}/${EZC3D_NAME}" | ||
) | ||
|
||
# Check if swig has its version 3 or 4, to choose the right place to put the library | ||
if(${SWIG_VERSION} MATCHES "^3(\.[0-9]*)*$") | ||
set(PYTHON_INSTALL_DESTINATION ${Python3_SITELIB}) | ||
set(PYTHON_INSTALL_DESTINATION "${Python3_SITELIB}") | ||
elseif(${SWIG_VERSION} MATCHES "^4(\.[0-9]*)*$") | ||
set(PYTHON_INSTALL_DESTINATION ${Python3_SITELIB}/${PROJECT_NAME}) | ||
set(PYTHON_INSTALL_DESTINATION "${Python3_SITELIB}/${EZC3D_NAME}") | ||
else() | ||
message( FATAL_ERROR "Swig must be version 3 or 4" ) | ||
endif() | ||
|
||
# Install the library | ||
INSTALL(TARGETS _${PROJECT_NAME} | ||
DESTINATION ${PYTHON_INSTALL_DESTINATION} | ||
INSTALL(TARGETS ${PYTHON_PROJECT_NAME} | ||
DESTINATION "${PYTHON_INSTALL_DESTINATION}" | ||
) |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.