Skip to content
Snippets Groups Projects
Commit 36c915f4 authored by Adrien Crovato's avatar Adrien Crovato
Browse files

Update to ubuntu22 and min. cmake 3.14

parent 8a20b0f1
No related branches found
No related tags found
1 merge request!6amfe v1.0.5
Pipeline #6195 failed
...@@ -245,37 +245,36 @@ unset(_TBB_INCLUDE_DIRS CACHE) ...@@ -245,37 +245,36 @@ unset(_TBB_INCLUDE_DIRS CACHE)
# Versions # Versions
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
SET(_TBB_VERSION_INTERFACE ${TBB_VERSION_INTERFACE}) # Find file containing version info
IF( (NOT TBB_VERSION_INTERFACE) AND TBB_INCLUDE_DIRS AND NOT DEFINED ENV{ONEAPI_ROOT}) IF(EXISTS "${TBB_INCLUDE_DIRS}/tbb/tbb_stddef.h")
FILE(READ "${TBB_INCLUDE_DIRS}/tbb/tbb_stddef.h" _FILE) FILE(READ "${TBB_INCLUDE_DIRS}/tbb/tbb_stddef.h" _FILE) # older TBB
set(_TBB_VERSION_MAJOR 0) ELSEIF(EXISTS "${TBB_INCLUDE_DIRS}/oneapi/tbb/version.h")
set(_TBB_VERSION_MINOR 0) FILE(READ "${TBB_INCLUDE_DIRS}/oneapi/tbb/version.h" _FILE) # newer oneTBB
ELSE()
MESSAGE(STATUS "TBB_LIBRARIES: ${TBB_LIBRARIES}")
MESSAGE(STATUS "TBB_INCLUDE_DIRS: ${TBB_INCLUDE_DIRS}")
MESSAGE(FATAL_ERROR "Cannot find version file in ${TBB_INCLUDE_DIRS}/tbb.")
ENDIF()
# If file has been found, read the version
IF (DEFINED _FILE)
STRING(REGEX REPLACE ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1" _TBB_VERSION_INTERFACE "${_FILE}") STRING(REGEX REPLACE ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1" _TBB_VERSION_INTERFACE "${_FILE}")
STRING(REGEX REPLACE ".*#define TBB_VERSION_MAJOR ([0-9]+).*" "\\1" _TBB_VERSION_MAJOR "${_FILE}") STRING(REGEX REPLACE ".*#define TBB_VERSION_MAJOR ([0-9]+).*" "\\1" _TBB_VERSION_MAJOR "${_FILE}")
STRING(REGEX REPLACE ".*#define TBB_VERSION_MINOR ([0-9]+).*" "\\1" _TBB_VERSION_MINOR "${_FILE}") STRING(REGEX REPLACE ".*#define TBB_VERSION_MINOR ([0-9]+).*" "\\1" _TBB_VERSION_MINOR "${_FILE}")
set(_TBB_VERSION_STRING "${_TBB_VERSION_MAJOR}.${_TBB_VERSION_MINOR}") STRING(REGEX REPLACE ".*#define TBB_VERSION_PATCH ([0-9]+).*" "\\1" _TBB_VERSION_PATCH "${_FILE}")
unset(_FILE) SET(TBB_INTERFACE_VERSION ${_TBB_INTERFACE_VERSION})
ENDIF() SET(TBB_VERSION ${_TBB_VERSION_MAJOR}.${_TBB_VERSION_MINOR}.${_TBB_VERSION_PATCH})
IF(NOT TBB_VERSION_INTERFACE) IF (_VERB)
SET(TBB_VERSION_INTERFACE ${_TBB_VERSION_INTERFACE} CACHE STRING "" FORCE) MESSAGE(STATUS "TBB version: ${TBB_VERSION} (${TBB_INTERFACE_VERSION})")
SET(TBB_VERSION_MAJOR ${_TBB_VERSION_MAJOR} CACHE INTERNAL "" FORCE) ENDIF()
SET(TBB_VERSION_MINOR ${_TBB_VERSION_MINOR} CACHE INTERNAL "" FORCE)
SET(TBB_VERSION_STRING ${_TBB_VERSION_STRING} CACHE STRING "" FORCE)
mark_as_advanced(TBB_VERSION_INTERFACE)
mark_as_advanced(TBB_VERSION_MAJOR)
mark_as_advanced(TBB_VERSION_MINOR)
mark_as_advanced(TBB_VERSION_STRING)
ENDIF() ENDIF()
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set TBB_FOUND to TRUE # handle the QUIETLY and REQUIRED arguments and set TBB_FOUND to TRUE
# if all listed variables are TRUE # if all listed variables are TRUE
find_package_handle_standard_args(TBB DEFAULT_MSG find_package_handle_standard_args(TBB
TBB_LIBRARIES TBB_INCLUDE_DIRS REQUIRED_VARS TBB_LIBRARIES TBB_INCLUDE_DIRS TBB_LIB_PATH TBB_LIB_PATH_DEBUG
TBB_LIB_PATH TBB_LIB_PATH_DEBUG) VERSION_VAR TBB_VERSION)
#MESSAGE(STATUS "TBB_FOUND = ${TBB_FOUND}")
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
unset(_VERB) unset(_VERB)
...@@ -15,11 +15,7 @@ ...@@ -15,11 +15,7 @@
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
PROJECT(amfe) PROJECT(amfe)
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
CMAKE_MINIMUM_REQUIRED(VERSION 3.1) CMAKE_MINIMUM_REQUIRED(VERSION 3.14)
IF(${CMAKE_VERSION} VERSION_GREATER "3.14.0") # we might want to update the project and use the NEW behavior here
cmake_policy(SET CMP0078 OLD)
cmake_policy(SET CMP0086 OLD)
ENDIF()
# -- I/O # -- I/O
# Lib/Exe dir # Lib/Exe dir
...@@ -66,17 +62,12 @@ OPTION(USE_MUMPS "Compile with MUMPS" ON) ...@@ -66,17 +62,12 @@ OPTION(USE_MUMPS "Compile with MUMPS" ON)
# -- DEPENDENCIES # -- DEPENDENCIES
# Python # Python
IF (CMAKE_VERSION VERSION_LESS 3.12.0) # use Python3_ROOT_DIR if wrong python found (e.g. anaconda)
FIND_PACKAGE(PythonInterp 3.6 REQUIRED) FIND_PACKAGE(Python3 COMPONENTS Interpreter Development)
FIND_PACKAGE(PythonLibs 3.6 REQUIRED) SET(PYTHON_EXECUTABLE ${Python3_EXECUTABLE})
ELSE() SET(PYTHON_LIBRARIES ${Python3_LIBRARIES})
FIND_PACKAGE(Python3 COMPONENTS Interpreter Development) SET(PYTHON_INCLUDE_PATH ${Python3_INCLUDE_DIRS})
# use Python3_ROOT_DIR if wrong python found (e.g. anaconda) SET(PYTHONLIBS_VERSION_STRING ${Python3_VERSION})
SET(PYTHON_EXECUTABLE ${Python3_EXECUTABLE})
SET(PYTHON_LIBRARIES ${Python3_LIBRARIES})
SET(PYTHON_INCLUDE_PATH ${Python3_INCLUDE_DIRS})
SET(PYTHONLIBS_VERSION_STRING ${Python3_VERSION})
ENDIF()
MESSAGE(STATUS "PYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE}") MESSAGE(STATUS "PYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE}")
MESSAGE(STATUS "PYTHON_LIBRARIES:FILEPATH=${PYTHON_LIBRARIES}") MESSAGE(STATUS "PYTHON_LIBRARIES:FILEPATH=${PYTHON_LIBRARIES}")
MESSAGE(STATUS "PYTHON_INCLUDE_PATH:FILEPATH=${PYTHON_INCLUDE_PATH}") MESSAGE(STATUS "PYTHON_INCLUDE_PATH:FILEPATH=${PYTHON_INCLUDE_PATH}")
......
...@@ -19,29 +19,16 @@ INCLUDE(${SWIG_USE_FILE}) ...@@ -19,29 +19,16 @@ INCLUDE(${SWIG_USE_FILE})
FILE(GLOB SRCS *.h *.cpp *.inl *.swg) FILE(GLOB SRCS *.h *.cpp *.inl *.swg)
FILE(GLOB ISRCS *.i) FILE(GLOB ISRCS *.i)
SET(CMAKE_SWIG_FLAGS "")
SET_SOURCE_FILES_PROPERTIES(${ISRCS} PROPERTIES CPLUSPLUS ON) SET_SOURCE_FILES_PROPERTIES(${ISRCS} PROPERTIES CPLUSPLUS ON)
SET(CMAKE_SWIG_FLAGS "-interface" "_fwkw") # avoids "import _module_d" with MSVC/Debug
SWIG_ADD_LIBRARY(fwkw LANGUAGE python SOURCES ${ISRCS} ${SRCS})
SET_PROPERTY(TARGET fwkw PROPERTY SWIG_USE_TARGET_INCLUDE_DIRECTORIES ON)
MACRO_DebugPostfix(fwkw)
SET(SWINCFLAGS TARGET_INCLUDE_DIRECTORIES(fwkw PRIVATE ${PROJECT_SOURCE_DIR}/fwk/_src
-I${PROJECT_SOURCE_DIR}/fwk/src ${PYTHON_INCLUDE_PATH})
) TARGET_LINK_LIBRARIES(fwkw PRIVATE fwk ${PYTHON_LIBRARIES})
SET_SOURCE_FILES_PROPERTIES(${ISRCS} PROPERTIES SWIG_FLAGS "${SWINCFLAGS}")
if (${CMAKE_VERSION} VERSION_LESS "3.8.0")
SWIG_ADD_MODULE(fwkw python ${ISRCS} ${SRCS})
else()
SWIG_ADD_LIBRARY(fwkw LANGUAGE python SOURCES ${ISRCS} ${SRCS})
endif()
MACRO_DebugPostfix(_fwkw)
TARGET_INCLUDE_DIRECTORIES(_fwkw PRIVATE ${PROJECT_SOURCE_DIR}/fwk/_src
${PYTHON_INCLUDE_PATH}
)
SWIG_LINK_LIBRARIES(fwkw
fwk ${PYTHON_LIBRARIES}
)
INSTALL(FILES "${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE}/fwkw.py" INSTALL(FILES "${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE}/fwkw.py"
DESTINATION ${CMAKE_INSTALL_PREFIX}) DESTINATION ${CMAKE_INSTALL_PREFIX})
INSTALL(TARGETS _fwkw DESTINATION ${CMAKE_INSTALL_PREFIX}) INSTALL(TARGETS fwkw DESTINATION ${CMAKE_INSTALL_PREFIX})
...@@ -19,33 +19,17 @@ INCLUDE(${SWIG_USE_FILE}) ...@@ -19,33 +19,17 @@ INCLUDE(${SWIG_USE_FILE})
FILE(GLOB SRCS *.h *.cpp *.inl *.swg) FILE(GLOB SRCS *.h *.cpp *.inl *.swg)
FILE(GLOB ISRCS *.i) FILE(GLOB ISRCS *.i)
SET(CMAKE_SWIG_FLAGS "")
SET_SOURCE_FILES_PROPERTIES(${ISRCS} PROPERTIES CPLUSPLUS ON) SET_SOURCE_FILES_PROPERTIES(${ISRCS} PROPERTIES CPLUSPLUS ON)
SET(CMAKE_SWIG_FLAGS "-interface" "_tboxw") # avoids "import _module_d" with MSVC/Debug
SWIG_ADD_LIBRARY(tboxw LANGUAGE python SOURCES ${ISRCS} ${SRCS})
SET_PROPERTY(TARGET tboxw PROPERTY SWIG_USE_TARGET_INCLUDE_DIRECTORIES ON)
MACRO_DebugPostfix(tboxw)
SET(SWINCFLAGS TARGET_INCLUDE_DIRECTORIES(tboxw PRIVATE ${PROJECT_SOURCE_DIR}/tbox/_src
-I${PROJECT_SOURCE_DIR}/tbox/src ${PROJECT_SOURCE_DIR}/fwk/_src
-I${PROJECT_SOURCE_DIR}/tbox/_src ${PYTHON_INCLUDE_PATH})
-I${PROJECT_SOURCE_DIR}/fwk/src TARGET_LINK_LIBRARIES(tboxw PRIVATE tbox fwk ${PYTHON_LIBRARIES})
-I${PROJECT_SOURCE_DIR}/fwk/_src
)
SET_SOURCE_FILES_PROPERTIES(${ISRCS} PROPERTIES SWIG_FLAGS "${SWINCFLAGS}")
if (${CMAKE_VERSION} VERSION_LESS "3.8.0")
SWIG_ADD_MODULE(tboxw python ${ISRCS} ${SRCS})
else()
SWIG_ADD_LIBRARY(tboxw LANGUAGE python SOURCES ${ISRCS} ${SRCS})
endif()
MACRO_DebugPostfix(_tboxw)
TARGET_INCLUDE_DIRECTORIES(_tboxw PRIVATE ${PROJECT_SOURCE_DIR}/fwk/_src
${PROJECT_SOURCE_DIR}/tbox/_src
${PYTHON_INCLUDE_PATH}
)
SWIG_LINK_LIBRARIES(tboxw
tbox fwk ${PYTHON_LIBRARIES}
)
INSTALL(FILES "${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE}/tboxw.py" INSTALL(FILES "${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE}/tboxw.py"
DESTINATION ${CMAKE_INSTALL_PREFIX}) DESTINATION ${CMAKE_INSTALL_PREFIX})
INSTALL(TARGETS _tboxw DESTINATION ${CMAKE_INSTALL_PREFIX}) INSTALL(TARGETS tboxw DESTINATION ${CMAKE_INSTALL_PREFIX})
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include <fstream> #include <fstream>
#include <set> #include <set>
#include <algorithm> #include <algorithm>
#include <limits>
using namespace tbox; using namespace tbox;
......
...@@ -19,35 +19,18 @@ INCLUDE(${SWIG_USE_FILE}) ...@@ -19,35 +19,18 @@ INCLUDE(${SWIG_USE_FILE})
FILE(GLOB SRCS *.h *.cpp *.inl *.swg) FILE(GLOB SRCS *.h *.cpp *.inl *.swg)
FILE(GLOB ISRCS *.i) FILE(GLOB ISRCS *.i)
SET(CMAKE_SWIG_FLAGS "")
SET_SOURCE_FILES_PROPERTIES(${ISRCS} PROPERTIES CPLUSPLUS ON) SET_SOURCE_FILES_PROPERTIES(${ISRCS} PROPERTIES CPLUSPLUS ON)
SET(CMAKE_SWIG_FLAGS "-interface" "_tboxVtkw") # avoids "import _module_d" with MSVC/Debug
SWIG_ADD_LIBRARY(tboxVtkw LANGUAGE python SOURCES ${ISRCS} ${SRCS})
SET_PROPERTY(TARGET tboxVtkw PROPERTY SWIG_USE_TARGET_INCLUDE_DIRECTORIES ON)
MACRO_DebugPostfix(tboxVtkw)
SET(SWINCFLAGS TARGET_INCLUDE_DIRECTORIES(tboxVtkw PRIVATE ${PROJECT_SOURCE_DIR}/tboxVtk/_src
-I${PROJECT_SOURCE_DIR}/tboxVtk/src ${PROJECT_SOURCE_DIR}/tbox/_src
-I${PROJECT_SOURCE_DIR}/tbox/src ${PROJECT_SOURCE_DIR}/fwk/_src
-I${PROJECT_SOURCE_DIR}/tbox/_src ${PYTHON_INCLUDE_PATH})
-I${PROJECT_SOURCE_DIR}/fwk/src TARGET_LINK_LIBRARIES(tboxVtkw PRIVATE tboxVtk tbox fwk ${PYTHON_LIBRARIES})
-I${PROJECT_SOURCE_DIR}/fwk/_src
)
SET_SOURCE_FILES_PROPERTIES(${ISRCS} PROPERTIES SWIG_FLAGS "${SWINCFLAGS}")
if (${CMAKE_VERSION} VERSION_LESS "3.8.0")
SWIG_ADD_MODULE(tboxVtkw python ${ISRCS} ${SRCS})
else()
SWIG_ADD_LIBRARY(tboxVtkw LANGUAGE python SOURCES ${ISRCS} ${SRCS})
endif()
MACRO_DebugPostfix(_tboxVtkw)
TARGET_INCLUDE_DIRECTORIES(_tboxVtkw PRIVATE ${PROJECT_SOURCE_DIR}/tboxVtk/_src
${PROJECT_SOURCE_DIR}/fwk/_src
${PROJECT_SOURCE_DIR}/tbox/_src
${PYTHON_INCLUDE_PATH}
)
SWIG_LINK_LIBRARIES(tboxVtkw
tboxVtk tbox fwk ${PYTHON_LIBRARIES}
)
INSTALL(FILES "${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE}/tboxVtkw.py" INSTALL(FILES "${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE}/tboxVtkw.py"
DESTINATION ${CMAKE_INSTALL_PREFIX}) DESTINATION ${CMAKE_INSTALL_PREFIX})
INSTALL(TARGETS _tboxVtkw DESTINATION ${CMAKE_INSTALL_PREFIX}) INSTALL(TARGETS tboxVtkw DESTINATION ${CMAKE_INSTALL_PREFIX})
...@@ -27,14 +27,18 @@ TARGET_INCLUDE_DIRECTORIES(tboxVtk PUBLIC ${PROJECT_SOURCE_DIR}/tboxVtk/src) ...@@ -27,14 +27,18 @@ TARGET_INCLUDE_DIRECTORIES(tboxVtk PUBLIC ${PROJECT_SOURCE_DIR}/tboxVtk/src)
# 1. first, look for all available VTK libraries # 1. first, look for all available VTK libraries
FIND_PACKAGE(VTK REQUIRED NO_MODULE) FIND_PACKAGE(VTK REQUIRED NO_MODULE QUIET)
IF(${VTK_VERSION} VERSION_LESS 6.0) IF(${VTK_VERSION} VERSION_LESS 6.0)
MESSAGE(FATAL_ERROR "VTK>=6 required!") MESSAGE(FATAL_ERROR "VTK>=6 required!")
ENDIF() ENDIF()
MESSAGE(STATUS "VTK_LIBRARIES1 = ${VTK_LIBRARIES}") # display all VTK libs #MESSAGE(STATUS "VTK_LIBRARIES1 = ${VTK_LIBRARIES}") # display all VTK libs
# list of required components # list of required components
SET(REQVTKCMP vtkIOXML) IF(${VTK_VERSION} VERSION_LESS 9.0)
SET(REQVTKCMP vtkIOXML)
ELSE()
SET(REQVTKCMP IOXML)
ENDIF()
# check whether MPI has been compiled # check whether MPI has been compiled
IF(TARGET vtkParallelMPI) # NOTE: this test also works with a previous single-COMPONENT search IF(TARGET vtkParallelMPI) # NOTE: this test also works with a previous single-COMPONENT search
...@@ -47,16 +51,19 @@ ENDIF() ...@@ -47,16 +51,19 @@ ENDIF()
# 2. second, perform a new search with a limited number of components # 2. second, perform a new search with a limited number of components
# NOTE: you may just disable the following line to link against ALL vtk libraries! # NOTE: you may just disable the following line to link against ALL vtk libraries!
FIND_PACKAGE(VTK REQUIRED COMPONENTS ${REQVTKCMP} NO_MODULE) FIND_PACKAGE(VTK REQUIRED COMPONENTS ${REQVTKCMP} NO_MODULE QUIET)
IF(${VTK_FOUND})
MESSAGE(STATUS "Found VTK ${VTK_VERSION} at \"${VTK_PREFIX_PATH}\" (components: ${VTK_LIBRARIES})")
ENDIF()
# debug # debug
MESSAGE(STATUS "VTK_DEFINITIONS = ${VTK_DEFINITIONS}") #MESSAGE(STATUS "VTK_DEFINITIONS = ${VTK_DEFINITIONS}")
MESSAGE(STATUS "VTK_REQUIRED_CXX_FLAGS = ${VTK_REQUIRED_CXX_FLAGS}") #MESSAGE(STATUS "VTK_REQUIRED_CXX_FLAGS = ${VTK_REQUIRED_CXX_FLAGS}")
MESSAGE(STATUS "VTK_REQUIRED_EXE_LINKER_FLAGS = ${VTK_REQUIRED_EXE_LINKER_FLAGS}") #MESSAGE(STATUS "VTK_REQUIRED_EXE_LINKER_FLAGS = ${VTK_REQUIRED_EXE_LINKER_FLAGS}")
MESSAGE(STATUS "VTK_REQUIRED_SHARED_LINKER_FLAGS = ${VTK_REQUIRED_SHARED_LINKER_FLAGS}") #MESSAGE(STATUS "VTK_REQUIRED_SHARED_LINKER_FLAGS = ${VTK_REQUIRED_SHARED_LINKER_FLAGS}")
MESSAGE(STATUS "VTK_USE_FILE = ${VTK_USE_FILE}") #MESSAGE(STATUS "VTK_USE_FILE = ${VTK_USE_FILE}")
MESSAGE(STATUS "VTK_INCLUDE_DIR = ${VTK_INCLUDE_DIR}") #MESSAGE(STATUS "VTK_INCLUDE_DIR = ${VTK_INCLUDE_DIR}")
MESSAGE(STATUS "VTK_LIBRARIES = ${VTK_LIBRARIES}") #MESSAGE(STATUS "VTK_LIBRARIES = ${VTK_LIBRARIES}")
TARGET_INCLUDE_DIRECTORIES(tboxVtk PUBLIC ${VTK_INCLUDE_DIRS}) TARGET_INCLUDE_DIRECTORIES(tboxVtk PUBLIC ${VTK_INCLUDE_DIRS})
TARGET_COMPILE_DEFINITIONS(tboxVtk PUBLIC ${VTK_DEFINITIONS}) TARGET_COMPILE_DEFINITIONS(tboxVtk PUBLIC ${VTK_DEFINITIONS})
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment