Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 929ad4de authored by NICLAUSSE Nicolas's avatar NICLAUSSE Nicolas
Browse files

fix cmakelists + update recipe

parent d8b0fd50
No related branches found
No related tags found
No related merge requests found
Pipeline #347417 failed
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
## ##
### Code: ### Code:
cmake_minimum_required(VERSION 3.14.0) cmake_minimum_required(VERSION 3.15.0)
cmake_policy(SET CMP0078 NEW) cmake_policy(SET CMP0078 NEW)
cmake_policy(SET CMP0086 NEW) cmake_policy(SET CMP0086 NEW)
...@@ -26,8 +26,34 @@ project(dtkImagingPython) ...@@ -26,8 +26,34 @@ project(dtkImagingPython)
## ################################################################### ## ###################################################################
include(GNUInstallDirs) include(GNUInstallDirs)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
## ###################################################################
## Version setup
## ###################################################################
set(${PROJECT_NAME}_VERSION_MAJOR ${dtkImaging_VERSION_MAJOR})
set(${PROJECT_NAME}_VERSION_MINOR ${dtkImaging_VERSION_MINOR})
set(${PROJECT_NAME}_VERSION_PATCH ${dtkImaging_VERSION_PATCH})
set(${PROJECT_NAME}_VERSION
${${PROJECT_NAME}_VERSION_MAJOR}.${${PROJECT_NAME}_VERSION_MINOR}.${${PROJECT_NAME}_VERSION_PATCH})
## ###################################################################
## Dependencies - Qt
## ###################################################################
find_package(Qt5 REQUIRED COMPONENTS Core) find_package(Qt5 REQUIRED COMPONENTS Core)
## ###################################################################
## Dependencies - dtk
## ###################################################################
find_package(dtkCore REQUIRED) find_package(dtkCore REQUIRED)
find_package(dtkLog REQUIRED) find_package(dtkLog REQUIRED)
find_package(dtkScript REQUIRED) find_package(dtkScript REQUIRED)
...@@ -43,16 +69,6 @@ if (${DTKIMAGING_ENABLE_WIDGETS}) ...@@ -43,16 +69,6 @@ if (${DTKIMAGING_ENABLE_WIDGETS})
find_package(dtkWidgets REQUIRED) find_package(dtkWidgets REQUIRED)
endif() endif()
## ###################################################################
## Version setup
## ###################################################################
set(${PROJECT_NAME}_VERSION_MAJOR ${dtkImaging_VERSION_MAJOR})
set(${PROJECT_NAME}_VERSION_MINOR ${dtkImaging_VERSION_MINOR})
set(${PROJECT_NAME}_VERSION_PATCH ${dtkImaging_VERSION_PATCH})
set(${PROJECT_NAME}_VERSION
${${PROJECT_NAME}_VERSION_MAJOR}.${${PROJECT_NAME}_VERSION_MINOR}.${${PROJECT_NAME}_VERSION_PATCH})
## ################################################################### ## ###################################################################
## Python ## Python
## ################################################################### ## ###################################################################
...@@ -64,35 +80,25 @@ endif() ...@@ -64,35 +80,25 @@ endif()
find_package (Python3 COMPONENTS Interpreter Development NumPy) find_package (Python3 COMPONENTS Interpreter Development NumPy)
set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE})
include_directories(${Python3_INCLUDE_DIRS} include_directories(${Python3_INCLUDE_DIRS}
${Python3_NumPy_INCLUDE_DIRS} ${Python3_NumPy_INCLUDE_DIRS}
${CMAKE_CURRENT_SOURCE_DIR}) ${CMAKE_CURRENT_SOURCE_DIR})
set(DTK_PYTHON_INSTALL_PATH "${CMAKE_INSTALL_LIBDIR}/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages")
## ################################################################### ## ###################################################################
## swig rules ## swig rules
## ################################################################### ## ###################################################################
find_package(SWIG 4 REQUIRED) find_package(SWIG 4 REQUIRED)
include(${SWIG_USE_FILE})
#set(CMAKE_SWIG_FLAGS "-c++;-threads;-python")
mark_as_advanced(SWIG_DIR)
mark_as_advanced(SWIG_EXECUTABLE)
mark_as_advanced(SWIG_VERSION)
include(${SWIG_USE_FILE})
## ################################################################### ## #################################################################
## Default build type (RelWithDebInfo) ## Build python path
## ################################################################### ## #################################################################
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) set(DTK_PYTHON_BUILD_PATH "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages")
message(STATUS "Setting build type to 'RelWithDebInfo' as none was specified.")
set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build." FORCE)
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
endif(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
## ################################################################# ## #################################################################
## Install prefix ## Install prefix
...@@ -102,27 +108,46 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) ...@@ -102,27 +108,46 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
if (DEFINED ENV{CONDA_PREFIX}) if (DEFINED ENV{CONDA_PREFIX})
set(CMAKE_INSTALL_LIBDIR "lib" CACHE PATH "${PROJECT_NAME} libdir" FORCE) set(CMAKE_INSTALL_LIBDIR "lib" CACHE PATH "${PROJECT_NAME} libdir" FORCE)
set(CMAKE_INSTALL_PREFIX "$ENV{CONDA_PREFIX}" CACHE PATH "${PROJECT_NAME} install prefix" FORCE) set(CMAKE_INSTALL_PREFIX "$ENV{CONDA_PREFIX}" CACHE PATH "${PROJECT_NAME} install prefix" FORCE)
set(DTK_PYTHON_INSTALL_PATH ${Python3_SITELIB})
else() else()
set(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/install" CACHE PATH "${PROJECT_NAME} install prefix" FORCE) set(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/install" CACHE PATH "${PROJECT_NAME} install prefix" FORCE)
set(DTK_PYTHON_INSTALL_PATH "${CMAKE_INSTALL_LIBDIR}/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages")
endif() endif()
set(DTK_PYTHON_INSTALL_PATH "${CMAKE_INSTALL_LIBDIR}/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages")
else(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) else(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(DTK_PYTHON_INSTALL_PATH ${Python3_SITELIB}) set(DTK_PYTHON_INSTALL_PATH ${Python3_SITELIB})
endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_MODULES_INSTALL_DIRECTORY ${CMAKE_INSTALL_PREFIX}/${DTK_PYTHON_INSTALL_PATH})
## ################################################################# ## #################################################################
## Build setup ## Build setup
## ################################################################# ## #################################################################
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
message(STATUS "Setting build type to 'RelWithDebInfo' as none was specified.")
set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build." FORCE)
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
endif(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)
#set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
if(APPLE) if(APPLE)
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -flat_namespace") set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -flat_namespace")
endif(APPLE) endif(APPLE)
set(CMAKE_SKIP_BUILD_RPATH FALSE)
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir)
if("${isSystemDir}" STREQUAL "-1")
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
endif("${isSystemDir}" STREQUAL "-1")
## ################################################################# ## #################################################################
## Dependencies - internal ## Dependencies - internal
## ################################################################# ## #################################################################
...@@ -172,7 +197,7 @@ write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Conf ...@@ -172,7 +197,7 @@ write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Conf
COMPATIBILITY AnyNewerVersion) COMPATIBILITY AnyNewerVersion)
## ################################################################### ## ###################################################################
## Exporting ## Install rules
## ################################################################### ## ###################################################################
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/to_install/${PROJECT_NAME}Config.cmake install(FILES ${CMAKE_CURRENT_BINARY_DIR}/to_install/${PROJECT_NAME}Config.cmake
...@@ -183,13 +208,17 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/to_install/${PROJECT_NAME}Config.cmake ...@@ -183,13 +208,17 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/to_install/${PROJECT_NAME}Config.cmake
## Beautifying ## Beautifying
## ################################################################### ## ###################################################################
#mark_as_advanced(Qt5_DIR) mark_as_advanced(SWIG_DIR)
#mark_as_advanced(Qt5Core_DIR) mark_as_advanced(SWIG_EXECUTABLE)
mark_as_advanced(SWIG_VERSION)
mark_as_advanced(Qt5_DIR)
mark_as_advanced(Qt5Core_DIR)
#mark_as_advanced(CMAKE_AR) mark_as_advanced(CMAKE_AR)
#mark_as_advanced(CMAKE_OSX_ARCHITECTURES) mark_as_advanced(CMAKE_OSX_ARCHITECTURES)
#mark_as_advanced(CMAKE_OSX_DEPLOYMENT_TARGET) mark_as_advanced(CMAKE_OSX_DEPLOYMENT_TARGET)
#mark_as_advanced(CMAKE_OSX_SYSROOT) mark_as_advanced(CMAKE_OSX_SYSROOT)
###################################################################### ######################################################################
### CMakeLists.txt ends here ### CMakeLists.txt ends here
compiler_version: # [linux]
- 11.2.0 # [linux]
cxx_compiler_version: # [linux]
- 11.2.0 # [linux]
cdt_name: cos7 # [linux]
MACOSX_DEPLOYMENT_TARGET: # [osx]
- '10.14' # [osx]
MACOSX_SDK_VERSION: # [osx and x86_64]
- '10.14' # [osx and x86_64]
...@@ -11,7 +11,6 @@ build: ...@@ -11,7 +11,6 @@ build:
requirements: requirements:
build: build:
- cmake >=3.14.0 - cmake >=3.14.0
- binutils_impl_linux-64<2.31.0 # [linux]
- {{ compiler('cxx') }} - {{ compiler('cxx') }}
- {{ cdt('xorg-x11-proto-devel') }} # [linux] - {{ cdt('xorg-x11-proto-devel') }} # [linux]
- {{ cdt('mesa-libgl-devel') }} # [linux] - {{ cdt('mesa-libgl-devel') }} # [linux]
......
...@@ -23,14 +23,23 @@ get_property(LAYER_INCLUDES TARGET ${LAYER_NAME} PROPERTY INTERFACE_INCLUDE_DIRE ...@@ -23,14 +23,23 @@ get_property(LAYER_INCLUDES TARGET ${LAYER_NAME} PROPERTY INTERFACE_INCLUDE_DIRE
if(NOT DTK_SWIG_INCLUDE_PATH) if(NOT DTK_SWIG_INCLUDE_PATH)
message(FATAL_ERROR "You use a bad dtkScript version. Need DTK_SWIG_INCLUDE_PATH to continue") message(FATAL_ERROR "You use a bad dtkScript version. Need DTK_SWIG_INCLUDE_PATH to continue")
endif(NOT DTK_SWIG_INCLUDE_PATH) endif(NOT DTK_SWIG_INCLUDE_PATH)
list(INSERT LAYER_INCLUDES 0 ${DTK_SWIG_INCLUDE_PATH}) list(INSERT LAYER_INCLUDES 0 ${DTK_SWIG_INCLUDE_PATH})
# swig stuff ## #############################################################################
## Build setup
## #############################################################################
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/${LAYER_NAME}.i PROPERTIES CPLUSPLUS ON) set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/${LAYER_NAME}.i PROPERTIES CPLUSPLUS ON)
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/${LAYER_NAME}.i PROPERTIES INCLUDE_DIRECTORIES "${LAYER_INCLUDES}") set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/${LAYER_NAME}.i PROPERTIES INCLUDE_DIRECTORIES "${LAYER_INCLUDES}")
set(SWIG_MODULE_NAME ${PROJECT_NAME}) set(SWIG_MODULE_NAME ${PROJECT_NAME})
list(APPEND CMAKE_SWIG_FLAGS -v -O -python -c++ -threads) list(APPEND CMAKE_SWIG_FLAGS -v -O -python -c++ -threads)
## #############################################################################
## Build rules
## #############################################################################
swig_add_library(${PROJECT_NAME} LANGUAGE python SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/${LAYER_NAME}.i) swig_add_library(${PROJECT_NAME} LANGUAGE python SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/${LAYER_NAME}.i)
swig_link_libraries(${PROJECT_NAME} swig_link_libraries(${PROJECT_NAME}
${LAYER_NAME} ${LAYER_NAME}
...@@ -38,10 +47,17 @@ swig_link_libraries(${PROJECT_NAME} ...@@ -38,10 +47,17 @@ swig_link_libraries(${PROJECT_NAME}
Python3::NumPy Python3::NumPy
dtkCore) dtkCore)
add_custom_command(
TARGET ${SWIG_MODULE_NAME} POST_BUILD VERBATIM
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/${SWIG_MODULE_NAME}.py ${DTK_PYTHON_BUILD_PATH}/${SWIG_MODULE_NAME}.py
COMMAND ${CMAKE_COMMAND} -E copy "$<TARGET_FILE:${SWIG_MODULE_NAME}>" ${DTK_PYTHON_BUILD_PATH}/)
## #############################################################################
## Install rules
## #############################################################################
# install rules install(TARGETS ${SWIG_MODULE_NAME} DESTINATION ${DTK_PYTHON_INSTALL_PATH}/)
install(TARGETS ${PROJECT_NAME} DESTINATION ${DTK_PYTHON_INSTALL_PATH}/) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${SWIG_MODULE_NAME}.py DESTINATION ${DTK_PYTHON_INSTALL_PATH}/)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.py DESTINATION ${DTK_PYTHON_INSTALL_PATH}/)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${LAYER_NAME}.i DESTINATION ${CMAKE_INSTALL_PREFIX}/wrp/${LAYER_NAME}/) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${LAYER_NAME}.i DESTINATION ${CMAKE_INSTALL_PREFIX}/wrp/${LAYER_NAME}/)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/numpy.i DESTINATION ${CMAKE_INSTALL_PREFIX}/wrp/) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/numpy.i DESTINATION ${CMAKE_INSTALL_PREFIX}/wrp/)
......
...@@ -23,17 +23,30 @@ get_property(LAYER_INCLUDES TARGET ${LAYER_NAME} PROPERTY INTERFACE_INCLUDE_DIRE ...@@ -23,17 +23,30 @@ get_property(LAYER_INCLUDES TARGET ${LAYER_NAME} PROPERTY INTERFACE_INCLUDE_DIRE
if(NOT DTK_SWIG_INCLUDE_PATH) if(NOT DTK_SWIG_INCLUDE_PATH)
message(FATAL_ERROR "You use a bad dtkScript version. Need DTK_SWIG_INCLUDE_PATH to continue") message(FATAL_ERROR "You use a bad dtkScript version. Need DTK_SWIG_INCLUDE_PATH to continue")
endif(NOT DTK_SWIG_INCLUDE_PATH) endif(NOT DTK_SWIG_INCLUDE_PATH)
list(INSERT LAYER_INCLUDES 0 ${DTK_SWIG_INCLUDE_PATH}) list(INSERT LAYER_INCLUDES 0 ${DTK_SWIG_INCLUDE_PATH})
# swig stuff ## #############################################################################
## Build setup
## #############################################################################
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/${LAYER_NAME}.i PROPERTIES CPLUSPLUS ON) set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/${LAYER_NAME}.i PROPERTIES CPLUSPLUS ON)
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/${LAYER_NAME}.i PROPERTIES INCLUDE_DIRECTORIES "${LAYER_INCLUDES}") set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/${LAYER_NAME}.i PROPERTIES INCLUDE_DIRECTORIES "${LAYER_INCLUDES}")
set(SWIG_MODULE_NAME ${PROJECT_NAME}) set(SWIG_MODULE_NAME ${PROJECT_NAME})
list(APPEND CMAKE_SWIG_FLAGS -v -O -python -c++ -threads) list(APPEND CMAKE_SWIG_FLAGS -v -O -python -c++ -threads)
## #############################################################################
## Build rules
## #############################################################################
swig_add_library(${PROJECT_NAME} LANGUAGE python SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/${LAYER_NAME}.i) swig_add_library(${PROJECT_NAME} LANGUAGE python SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/${LAYER_NAME}.i)
swig_link_libraries(${PROJECT_NAME} ${LAYER_NAME} Python3::Python ) swig_link_libraries(${PROJECT_NAME} ${LAYER_NAME} Python3::Python )
add_custom_command(
TARGET ${SWIG_MODULE_NAME} POST_BUILD VERBATIM
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/${SWIG_MODULE_NAME}.py ${DTK_PYTHON_BUILD_PATH}/${SWIG_MODULE_NAME}.py
COMMAND ${CMAKE_COMMAND} -E copy "$<TARGET_FILE:${SWIG_MODULE_NAME}>" ${DTK_PYTHON_BUILD_PATH}/)
# install rules # install rules
install(TARGETS ${PROJECT_NAME} DESTINATION ${DTK_PYTHON_INSTALL_PATH}/) install(TARGETS ${PROJECT_NAME} DESTINATION ${DTK_PYTHON_INSTALL_PATH}/)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment