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)
# Versions
# ----------------------------------------------------------------------------
SET(_TBB_VERSION_INTERFACE ${TBB_VERSION_INTERFACE})
IF( (NOT TBB_VERSION_INTERFACE) AND TBB_INCLUDE_DIRS AND NOT DEFINED ENV{ONEAPI_ROOT})
FILE(READ "${TBB_INCLUDE_DIRS}/tbb/tbb_stddef.h" _FILE)
set(_TBB_VERSION_MAJOR 0)
set(_TBB_VERSION_MINOR 0)
# Find file containing version info
IF(EXISTS "${TBB_INCLUDE_DIRS}/tbb/tbb_stddef.h")
FILE(READ "${TBB_INCLUDE_DIRS}/tbb/tbb_stddef.h" _FILE) # older TBB
ELSEIF(EXISTS "${TBB_INCLUDE_DIRS}/oneapi/tbb/version.h")
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_VERSION_MAJOR ([0-9]+).*" "\\1" _TBB_VERSION_MAJOR "${_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}")
unset(_FILE)
ENDIF()
IF(NOT TBB_VERSION_INTERFACE)
SET(TBB_VERSION_INTERFACE ${_TBB_VERSION_INTERFACE} CACHE STRING "" FORCE)
SET(TBB_VERSION_MAJOR ${_TBB_VERSION_MAJOR} CACHE INTERNAL "" FORCE)
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)
STRING(REGEX REPLACE ".*#define TBB_VERSION_PATCH ([0-9]+).*" "\\1" _TBB_VERSION_PATCH "${_FILE}")
SET(TBB_INTERFACE_VERSION ${_TBB_INTERFACE_VERSION})
SET(TBB_VERSION ${_TBB_VERSION_MAJOR}.${_TBB_VERSION_MINOR}.${_TBB_VERSION_PATCH})
IF (_VERB)
MESSAGE(STATUS "TBB version: ${TBB_VERSION} (${TBB_INTERFACE_VERSION})")
ENDIF()
ENDIF()
# ----------------------------------------------------------------------------
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set TBB_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(TBB DEFAULT_MSG
TBB_LIBRARIES TBB_INCLUDE_DIRS
TBB_LIB_PATH TBB_LIB_PATH_DEBUG)
#MESSAGE(STATUS "TBB_FOUND = ${TBB_FOUND}")
find_package_handle_standard_args(TBB
REQUIRED_VARS TBB_LIBRARIES TBB_INCLUDE_DIRS TBB_LIB_PATH TBB_LIB_PATH_DEBUG
VERSION_VAR TBB_VERSION)
# ----------------------------------------------------------------------------
unset(_VERB)
......@@ -15,11 +15,7 @@
# ----------------------------------------------------------------------------
PROJECT(amfe)
# ----------------------------------------------------------------------------
CMAKE_MINIMUM_REQUIRED(VERSION 3.1)
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()
CMAKE_MINIMUM_REQUIRED(VERSION 3.14)
# -- I/O
# Lib/Exe dir
......@@ -66,17 +62,12 @@ OPTION(USE_MUMPS "Compile with MUMPS" ON)
# -- DEPENDENCIES
# Python
IF (CMAKE_VERSION VERSION_LESS 3.12.0)
FIND_PACKAGE(PythonInterp 3.6 REQUIRED)
FIND_PACKAGE(PythonLibs 3.6 REQUIRED)
ELSE()
FIND_PACKAGE(Python3 COMPONENTS Interpreter Development)
# use Python3_ROOT_DIR if wrong python found (e.g. anaconda)
SET(PYTHON_EXECUTABLE ${Python3_EXECUTABLE})
SET(PYTHON_LIBRARIES ${Python3_LIBRARIES})
SET(PYTHON_INCLUDE_PATH ${Python3_INCLUDE_DIRS})
SET(PYTHONLIBS_VERSION_STRING ${Python3_VERSION})
ENDIF()
# use Python3_ROOT_DIR if wrong python found (e.g. anaconda)
FIND_PACKAGE(Python3 COMPONENTS Interpreter Development)
SET(PYTHON_EXECUTABLE ${Python3_EXECUTABLE})
SET(PYTHON_LIBRARIES ${Python3_LIBRARIES})
SET(PYTHON_INCLUDE_PATH ${Python3_INCLUDE_DIRS})
SET(PYTHONLIBS_VERSION_STRING ${Python3_VERSION})
MESSAGE(STATUS "PYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE}")
MESSAGE(STATUS "PYTHON_LIBRARIES:FILEPATH=${PYTHON_LIBRARIES}")
MESSAGE(STATUS "PYTHON_INCLUDE_PATH:FILEPATH=${PYTHON_INCLUDE_PATH}")
......
......@@ -19,29 +19,16 @@ INCLUDE(${SWIG_USE_FILE})
FILE(GLOB SRCS *.h *.cpp *.inl *.swg)
FILE(GLOB ISRCS *.i)
SET(CMAKE_SWIG_FLAGS "")
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
-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(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}
)
TARGET_INCLUDE_DIRECTORIES(fwkw PRIVATE ${PROJECT_SOURCE_DIR}/fwk/_src
${PYTHON_INCLUDE_PATH})
TARGET_LINK_LIBRARIES(fwkw PRIVATE fwk ${PYTHON_LIBRARIES})
INSTALL(FILES "${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE}/fwkw.py"
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})
FILE(GLOB SRCS *.h *.cpp *.inl *.swg)
FILE(GLOB ISRCS *.i)
SET(CMAKE_SWIG_FLAGS "")
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
-I${PROJECT_SOURCE_DIR}/tbox/src
-I${PROJECT_SOURCE_DIR}/tbox/_src
-I${PROJECT_SOURCE_DIR}/fwk/src
-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}
)
TARGET_INCLUDE_DIRECTORIES(tboxw PRIVATE ${PROJECT_SOURCE_DIR}/tbox/_src
${PROJECT_SOURCE_DIR}/fwk/_src
${PYTHON_INCLUDE_PATH})
TARGET_LINK_LIBRARIES(tboxw PRIVATE tbox fwk ${PYTHON_LIBRARIES})
INSTALL(FILES "${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE}/tboxw.py"
DESTINATION ${CMAKE_INSTALL_PREFIX})
INSTALL(TARGETS _tboxw DESTINATION ${CMAKE_INSTALL_PREFIX})
INSTALL(TARGETS tboxw DESTINATION ${CMAKE_INSTALL_PREFIX})
......@@ -22,6 +22,7 @@
#include <fstream>
#include <set>
#include <algorithm>
#include <limits>
using namespace tbox;
......
......@@ -19,35 +19,18 @@ INCLUDE(${SWIG_USE_FILE})
FILE(GLOB SRCS *.h *.cpp *.inl *.swg)
FILE(GLOB ISRCS *.i)
SET(CMAKE_SWIG_FLAGS "")
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
-I${PROJECT_SOURCE_DIR}/tboxVtk/src
-I${PROJECT_SOURCE_DIR}/tbox/src
-I${PROJECT_SOURCE_DIR}/tbox/_src
-I${PROJECT_SOURCE_DIR}/fwk/src
-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}
)
TARGET_INCLUDE_DIRECTORIES(tboxVtkw PRIVATE ${PROJECT_SOURCE_DIR}/tboxVtk/_src
${PROJECT_SOURCE_DIR}/tbox/_src
${PROJECT_SOURCE_DIR}/fwk/_src
${PYTHON_INCLUDE_PATH})
TARGET_LINK_LIBRARIES(tboxVtkw PRIVATE tboxVtk tbox fwk ${PYTHON_LIBRARIES})
INSTALL(FILES "${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE}/tboxVtkw.py"
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)
# 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)
MESSAGE(FATAL_ERROR "VTK>=6 required!")
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
SET(REQVTKCMP vtkIOXML)
IF(${VTK_VERSION} VERSION_LESS 9.0)
SET(REQVTKCMP vtkIOXML)
ELSE()
SET(REQVTKCMP IOXML)
ENDIF()
# check whether MPI has been compiled
IF(TARGET vtkParallelMPI) # NOTE: this test also works with a previous single-COMPONENT search
......@@ -47,16 +51,19 @@ ENDIF()
# 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!
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
MESSAGE(STATUS "VTK_DEFINITIONS = ${VTK_DEFINITIONS}")
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_SHARED_LINKER_FLAGS = ${VTK_REQUIRED_SHARED_LINKER_FLAGS}")
MESSAGE(STATUS "VTK_USE_FILE = ${VTK_USE_FILE}")
MESSAGE(STATUS "VTK_INCLUDE_DIR = ${VTK_INCLUDE_DIR}")
MESSAGE(STATUS "VTK_LIBRARIES = ${VTK_LIBRARIES}")
#MESSAGE(STATUS "VTK_DEFINITIONS = ${VTK_DEFINITIONS}")
#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_SHARED_LINKER_FLAGS = ${VTK_REQUIRED_SHARED_LINKER_FLAGS}")
#MESSAGE(STATUS "VTK_USE_FILE = ${VTK_USE_FILE}")
#MESSAGE(STATUS "VTK_INCLUDE_DIR = ${VTK_INCLUDE_DIR}")
#MESSAGE(STATUS "VTK_LIBRARIES = ${VTK_LIBRARIES}")
TARGET_INCLUDE_DIRECTORIES(tboxVtk PUBLIC ${VTK_INCLUDE_DIRS})
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