"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "CMakeLists.txt" between
getdp-3.4.0-source.tgz and getdp-3.5.0-source.tgz

About: GetDP is a general finite element solver using mixed elements to discretize de Rham-type complexes in one, two and three dimensions.

CMakeLists.txt  (getdp-3.4.0-source.tgz):CMakeLists.txt  (getdp-3.5.0-source.tgz)
# GetDP - Copyright (C) 1997-2021 P. Dular and C. Geuzaine, University of Liege # GetDP - Copyright (C) 1997-2022 P. Dular and C. Geuzaine, University of Liege
# #
# See the LICENSE.txt file for license information. Please report all # See the LICENSE.txt file for license information. Please report all
# issues on https://gitlab.onelab.info/getdp/getdp/issues. # issues on https://gitlab.onelab.info/getdp/getdp/issues.
cmake_minimum_required(VERSION 3.3 FATAL_ERROR) cmake_minimum_required(VERSION 3.3 FATAL_ERROR)
# if CMAKE_BUILD_TYPE is specified use it; otherwise set the default # if CMAKE_BUILD_TYPE is specified use it; otherwise set the default
# build type to "RelWithDebInfo" ("-O2 -g" with gcc) prior to calling # build type to "RelWithDebInfo" ("-O2 -g" with gcc) prior to calling
# project() # project()
if(DEFINED CMAKE_BUILD_TYPE) if(DEFINED CMAKE_BUILD_TYPE)
skipping to change at line 37 skipping to change at line 37
opt(ARPACK "Enable Arpack eigensolver (requires Fortran)" ${DEFAULT}) opt(ARPACK "Enable Arpack eigensolver (requires Fortran)" ${DEFAULT})
opt(BLAS_LAPACK "Enable BLAS/Lapack for linear algebra (e.g. for Arpack)" ${DEFA ULT}) opt(BLAS_LAPACK "Enable BLAS/Lapack for linear algebra (e.g. for Arpack)" ${DEFA ULT})
opt(BUILD_LIB "Enable 'lib' target for building static GetDP library" OFF) opt(BUILD_LIB "Enable 'lib' target for building static GetDP library" OFF)
opt(BUILD_SHARED "Enable 'shared' target for building shared GetDP library" OFF) opt(BUILD_SHARED "Enable 'shared' target for building shared GetDP library" OFF)
opt(BUILD_DYNAMIC "Enable dynamic GetDP executable (linked with shared lib)" OFF ) opt(BUILD_DYNAMIC "Enable dynamic GetDP executable (linked with shared lib)" OFF )
opt(BUILD_ANDROID "Enable Android NDK library target (experimental)" OFF) opt(BUILD_ANDROID "Enable Android NDK library target (experimental)" OFF)
opt(BUILD_IOS "Enable iOS (ARM) library target (experimental)" OFF) opt(BUILD_IOS "Enable iOS (ARM) library target (experimental)" OFF)
opt(FORTRAN "Enable Fortran (needed for Arpack/Sparskit/Zitsol & Bessel)" ${DEFA ULT}) opt(FORTRAN "Enable Fortran (needed for Arpack/Sparskit/Zitsol & Bessel)" ${DEFA ULT})
opt(GMSH "Enable Gmsh functions (for field interpolation)" ${DEFAULT}) opt(GMSH "Enable Gmsh functions (for field interpolation)" ${DEFAULT})
opt(GSL "Enable GSL functions (for some built-in functions)" ${DEFAULT}) opt(GSL "Enable GSL functions (for some built-in functions)" ${DEFAULT})
opt(HPDDM "Enable HPDDM support" ${DEFAULT})
opt(KERNEL "Enable kernel (required for actual computations)" ON) opt(KERNEL "Enable kernel (required for actual computations)" ON)
opt(MMA "Enable MMA optimizer" ${DEFAULT}) opt(MMA "Enable MMA optimizer" ${DEFAULT})
opt(MPI "Enable MPI parallelization (with PETSc/SLEPc)" OFF) opt(MPI "Enable MPI parallelization (with PETSc/SLEPc)" OFF)
opt(MULTIHARMONIC "Enable multi-harmonic support" OFF) opt(MULTIHARMONIC "Enable multi-harmonic support" OFF)
opt(NR "Enable NR functions (if GSL is unavailable)" ${DEFAULT}) opt(NR "Enable NR functions (if GSL is unavailable)" ${DEFAULT})
opt(NX "Enable proprietary NX extension" OFF) opt(NX "Enable proprietary NX extension" OFF)
opt(OCTAVE "Enable Octave functions" OFF) opt(OCTAVE "Enable Octave functions" OFF)
opt(OPENMP "Enable OpenMP parallelization of some functions (experimental)" OFF) opt(OPENMP "Enable OpenMP parallelization of some functions (experimental)" OFF)
opt(PETSC "Enable PETSc linear solver" ${DEFAULT}) opt(PETSC "Enable PETSc linear solver" ${DEFAULT})
opt(PRIVATE_API "Enable private API" OFF) opt(PRIVATE_API "Enable private API" OFF)
skipping to change at line 69 skipping to change at line 68
else() else()
project(getdp CXX C) project(getdp CXX C)
endif() endif()
# require C++11 and request C99 # require C++11 and request C99
set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_C_STANDARD 99) set(CMAKE_C_STANDARD 99)
set(GETDP_MAJOR_VERSION 3) set(GETDP_MAJOR_VERSION 3)
set(GETDP_MINOR_VERSION 4) set(GETDP_MINOR_VERSION 5)
set(GETDP_PATCH_VERSION 0) set(GETDP_PATCH_VERSION 0)
set(GETDP_EXTRA_VERSION "") set(GETDP_EXTRA_VERSION "")
set(GETDP_EXTRA_VERSION_TEXI "${GETDP_EXTRA_VERSION}") set(GETDP_EXTRA_VERSION_TEXI "${GETDP_EXTRA_VERSION}")
if(NOT GETDP_RELEASE) if(NOT GETDP_RELEASE)
find_package(Git) find_package(Git)
if(GIT_FOUND) if(GIT_FOUND)
execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --format=%h execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --format=%h
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} ERROR_QUIET WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} ERROR_QUIET
OUTPUT_VARIABLE GIT_COMMIT_HASH OUTPUT_VARIABLE GIT_COMMIT_HASH
skipping to change at line 92 skipping to change at line 91
if(GIT_COMMIT_HASH) if(GIT_COMMIT_HASH)
set(GETDP_EXTRA_VERSION "${GETDP_EXTRA_VERSION}-git-${GIT_COMMIT_HASH}") set(GETDP_EXTRA_VERSION "${GETDP_EXTRA_VERSION}-git-${GIT_COMMIT_HASH}")
endif() endif()
set(GETDP_EXTRA_VERSION_TEXI "${GETDP_EXTRA_VERSION_TEXI} (development version )") set(GETDP_EXTRA_VERSION_TEXI "${GETDP_EXTRA_VERSION_TEXI} (development version )")
endif() endif()
set(GETDP_VERSION "${GETDP_MAJOR_VERSION}.${GETDP_MINOR_VERSION}") set(GETDP_VERSION "${GETDP_MAJOR_VERSION}.${GETDP_MINOR_VERSION}")
set(GETDP_VERSION "${GETDP_VERSION}.${GETDP_PATCH_VERSION}${GETDP_EXTRA_VERSION} ") set(GETDP_VERSION "${GETDP_VERSION}.${GETDP_PATCH_VERSION}${GETDP_EXTRA_VERSION} ")
set(GETDP_SHORT_LICENSE "GNU General Public License") set(GETDP_SHORT_LICENSE "GNU General Public License")
set(GETDP_API Kernel/getdp.h) set(GETDP_API src/kernel/getdp.h)
if(ENABLE_PRIVATE_API) if(ENABLE_PRIVATE_API)
set(GETDP_PRIVATE_API Kernel/getdp.h set(GETDP_PRIVATE_API src/kernel/getdp.h
${CMAKE_CURRENT_BINARY_DIR}/Common/GetDPConfig.h ${CMAKE_CURRENT_BINARY_DIR}/src/common/GetDPConfig.h
${CMAKE_CURRENT_BINARY_DIR}/Common/GetDPVersion.h) ${CMAKE_CURRENT_BINARY_DIR}/src/common/GetDPVersion.h)
endif() endif()
if(${CMAKE_MAJOR_VERSION} GREATER 2) if(${CMAKE_MAJOR_VERSION} GREATER 2)
string(TIMESTAMP DATE "%Y%m%d") string(TIMESTAMP DATE "%Y%m%d")
else() else()
execute_process(COMMAND date "+%Y%m%d" OUTPUT_VARIABLE DATE execute_process(COMMAND date "+%Y%m%d" OUTPUT_VARIABLE DATE
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
endif() endif()
if(NOT DATE) if(NOT DATE)
skipping to change at line 362 skipping to change at line 361
if(LAPACK_FOUND) if(LAPACK_FOUND)
set_config_option(HAVE_LAPACK "Lapack") set_config_option(HAVE_LAPACK "Lapack")
else() else()
set(LAPACK_LIBRARIES ${BLAS_LIBRARIES}) set(LAPACK_LIBRARIES ${BLAS_LIBRARIES})
endif() endif()
endif() endif()
endif() endif()
endif() endif()
endif() endif()
add_subdirectory(Common) add_subdirectory(src/common)
add_subdirectory(Interface) add_subdirectory(src/interface)
add_subdirectory(Numeric) add_subdirectory(src/numeric)
add_subdirectory(Functions) add_subdirectory(src/functions)
if(ENABLE_KERNEL AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/Kernel) if(ENABLE_KERNEL AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/src/kernel)
add_subdirectory(Kernel) add_subdirectory(src/kernel)
set_config_option(HAVE_KERNEL "Kernel") set_config_option(HAVE_KERNEL "Kernel")
endif() endif()
if(ENABLE_MPI) if(ENABLE_MPI)
find_package(MPI) find_package(MPI)
if(MPI_FOUND) if(MPI_FOUND)
set_config_option(HAVE_MPI "MPI") set_config_option(HAVE_MPI "MPI")
list(APPEND EXTERNAL_INCLUDES ${MPI_CXX_INCLUDE_PATH}) list(APPEND EXTERNAL_INCLUDES ${MPI_CXX_INCLUDE_PATH})
list(APPEND EXTERNAL_LIBRARIES ${MPI_CXX_LIBRARIES}) list(APPEND EXTERNAL_LIBRARIES ${MPI_CXX_LIBRARIES})
set(CMAKE_C_COMPILER ${MPI_C_COMPILER}) set(CMAKE_C_COMPILER ${MPI_C_COMPILER})
skipping to change at line 391 skipping to change at line 390
endif() endif()
endif() endif()
if(ENABLE_GMSH) if(ENABLE_GMSH)
find_library(GMSH_LIB gmsh PATH_SUFFIXES lib) find_library(GMSH_LIB gmsh PATH_SUFFIXES lib)
# Currently GetDP uses the internal Gmsh developer API; this will be fixed # Currently GetDP uses the internal Gmsh developer API; this will be fixed
# as we move to the stable API. # as we move to the stable API.
find_path(GMSH_INC "gmsh/GmshGlobal.h" PATH_SUFFIXES include) find_path(GMSH_INC "gmsh/GmshGlobal.h" PATH_SUFFIXES include)
if(GMSH_LIB AND GMSH_INC) if(GMSH_LIB AND GMSH_INC)
list(APPEND EXTERNAL_LIBRARIES ${GMSH_LIB}) list(APPEND EXTERNAL_LIBRARIES ${GMSH_LIB})
list(APPEND EXTERNAL_INCLUDES ${GMSH_INC}) list(APPEND EXTERNAL_INCLUDES ${GMSH_INC} ${GMSH_INC}/gmsh)
include_directories(contrib/eigen)
set_config_option(HAVE_GMSH "Gmsh") set_config_option(HAVE_GMSH "Gmsh")
endif() endif()
endif() endif()
if(ENABLE_SMALLFEM) if(ENABLE_SMALLFEM)
find_library(SMALLFEM_LIB sf PATH_SUFFIXES lib) find_library(SMALLFEM_LIB sf PATH_SUFFIXES lib)
find_path(SMALLFEM_INC "functionSpace/functionSpace.h" PATH_SUFFIXES include) find_path(SMALLFEM_INC "functionSpace/functionSpace.h" PATH_SUFFIXES include)
if(SMALLFEM_LIB AND SMALLFEM_INC) if(SMALLFEM_LIB AND SMALLFEM_INC)
list(APPEND EXTERNAL_LIBRARIES ${SMALLFEM_LIB}) list(APPEND EXTERNAL_LIBRARIES ${SMALLFEM_LIB})
list(APPEND EXTERNAL_INCLUDES ${SMALLFEM_INC}) list(APPEND EXTERNAL_INCLUDES ${SMALLFEM_INC})
skipping to change at line 541 skipping to change at line 539
list(APPEND EXTERNAL_LIBRARIES ${SLEPC_LIB}) list(APPEND EXTERNAL_LIBRARIES ${SLEPC_LIB})
list(APPEND EXTERNAL_INCLUDES ${SLEPC_INC}) list(APPEND EXTERNAL_INCLUDES ${SLEPC_INC})
endif() endif()
endif() endif()
list(APPEND EXTERNAL_LIBRARIES ${PETSC_LIBS}) list(APPEND EXTERNAL_LIBRARIES ${PETSC_LIBS})
list(APPEND EXTERNAL_INCLUDES ${PETSC_INC}) list(APPEND EXTERNAL_INCLUDES ${PETSC_INC})
endif() endif()
endif() endif()
endif() endif()
if(ENABLE_HPDDM)
find_path(HPDDM_INC "HPDDM.hpp" PATH_SUFFIXES include)
if(HPDDM_INC)
list(APPEND EXTERNAL_INCLUDES ${HPDDM_INC})
set_config_option(HAVE_HPDDM "HPDDM")
endif()
endif()
if(ENABLE_FORTRAN) if(ENABLE_FORTRAN)
if(ENABLE_SPARSKIT AND NOT HAVE_PETSC AND if(ENABLE_SPARSKIT AND NOT HAVE_PETSC AND
EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/contrib/Sparskit) EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/contrib/Sparskit)
add_subdirectory(contrib/Sparskit) add_subdirectory(contrib/Sparskit)
include_directories(contrib/Sparskit) include_directories(contrib/Sparskit)
set_config_option(HAVE_SPARSKIT "Sparskit") set_config_option(HAVE_SPARSKIT "Sparskit")
file(GLOB_RECURSE SPARSKIT_SRC contrib/Sparskit/*.cpp contrib/Sparskit/*.f file(GLOB_RECURSE SPARSKIT_SRC contrib/Sparskit/*.cpp contrib/Sparskit/*.f
contrib/Sparskit/*.F) contrib/Sparskit/*.F)
set_compile_flags(SPARSKIT_SRC "-DHAVE_ILU_FLOAT") set_compile_flags(SPARSKIT_SRC "-DHAVE_ILU_FLOAT")
endif() endif()
skipping to change at line 576 skipping to change at line 566
EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/contrib/ZITSOL_1) EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/contrib/ZITSOL_1)
add_subdirectory(contrib/ZITSOL_1) add_subdirectory(contrib/ZITSOL_1)
set_config_option(HAVE_ZITSOL "Zitsol") set_config_option(HAVE_ZITSOL "Zitsol")
endif() endif()
if(ENABLE_ARPACK) if(ENABLE_ARPACK)
if(ENABLE_SYSTEM_CONTRIB) if(ENABLE_SYSTEM_CONTRIB)
find_library(ARPACK_LIB arpack PATH_SUFFIXES lib) find_library(ARPACK_LIB arpack PATH_SUFFIXES lib)
if(ARPACK_LIB) if(ARPACK_LIB)
list(APPEND EXTERNAL_LIBRARIES ${ARPACK_LIB}) list(APPEND EXTERNAL_LIBRARIES ${ARPACK_LIB})
set_config_option(HAVE_ARPACK "Arpack[system]") set_config_option(HAVE_ARPACK "Arpack")
endif() endif()
endif() endif()
if(NOT HAVE_ARPACK AND (HAVE_LAPACK OR HAVE_PETSC) AND if(NOT HAVE_ARPACK AND (HAVE_LAPACK OR HAVE_PETSC) AND
EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/contrib/Arpack) EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/contrib/Arpack)
# GCC 10 does not allow argument mismatches in a single file; this feature # GCC 10 does not allow argument mismatches in a single file; this feature
# is used in Arpack to e.g. scalars and vectors using the same routine # is used in Arpack to e.g. scalars and vectors using the same routine
# (e.g. svout) # (e.g. svout)
check_fortran_compiler_flag("-fallow-argument-mismatch" ARGMISMATCH) check_fortran_compiler_flag("-fallow-argument-mismatch" ARGMISMATCH)
if(ARGMISMATCH) if(ARGMISMATCH)
file(GLOB_RECURSE ARPACK_SRC contrib/Arpack/*.f) file(GLOB_RECURSE ARPACK_SRC contrib/Arpack/*.f)
set_compile_flags(ARPACK_SRC "-fallow-argument-mismatch") set_compile_flags(ARPACK_SRC "-fallow-argument-mismatch")
endif() endif()
add_subdirectory(contrib/Arpack) add_subdirectory(contrib/Arpack)
set_config_option(HAVE_ARPACK "Arpack") set_config_option(HAVE_ARPACK "Arpack[contrib]")
endif() endif()
endif() endif()
if(CMAKE_Fortran_COMPILER_ID MATCHES "GNU") if(CMAKE_Fortran_COMPILER_ID MATCHES "GNU")
if(CMAKE_Fortran_COMPILER MATCHES "g77") if(CMAKE_Fortran_COMPILER MATCHES "g77")
list(APPEND LAPACK_LIBRARIES -lg2c) list(APPEND LAPACK_LIBRARIES -lg2c)
elseif(NOT EXTERNAL_LIBRARIES MATCHES "gfortran") elseif(NOT EXTERNAL_LIBRARIES MATCHES "gfortran")
list(APPEND LAPACK_LIBRARIES -lgfortran) list(APPEND LAPACK_LIBRARIES -lgfortran)
endif() endif()
endif() endif()
skipping to change at line 713 skipping to change at line 703
# disable compile optimization on some known problematic files # disable compile optimization on some known problematic files
check_cxx_compiler_flag("-O0" NOOPT) check_cxx_compiler_flag("-O0" NOOPT)
if(NOOPT OR ENABLE_BUILD_IOS) if(NOOPT OR ENABLE_BUILD_IOS)
file(GLOB_RECURSE NON_OPTIMIZED_SRC contrib/NR/*.cpp) file(GLOB_RECURSE NON_OPTIMIZED_SRC contrib/NR/*.cpp)
set_compile_flags(NON_OPTIMIZED_SRC "-O0") set_compile_flags(NON_OPTIMIZED_SRC "-O0")
endif() endif()
# force full warnings to encourage everybody to write clean(er) code # force full warnings to encourage everybody to write clean(er) code
check_cxx_compiler_flag("-Wall" WALL) check_cxx_compiler_flag("-Wall" WALL)
if(WALL AND NOT MSVC) if(WALL AND NOT MSVC)
file(GLOB_RECURSE WALL_SRC Common/*.cpp Interface/*.cpp Kernel/*.cpp file(GLOB_RECURSE WALL_SRC src/common/*.cpp src/interface/*.cpp src/kernel/*.c
Main/*.cpp Numeric/*.cpp Functions/*.cpp) pp
src/main/*.cpp src/numeric/*.cpp src/functions/*.cpp)
set(WF "-Wall") set(WF "-Wall")
check_cxx_compiler_flag("-Wmisleading-indentation" WIND) check_cxx_compiler_flag("-Wmisleading-indentation" WIND)
if(WIND) if(WIND)
set(WF "${WF} -Wno-misleading-indentation") set(WF "${WF} -Wno-misleading-indentation")
endif() endif()
set_compile_flags(WALL_SRC ${WF}) set_compile_flags(WALL_SRC ${WF})
endif() endif()
# don't issue warnings for contributed libraries # don't issue warnings for contributed libraries
check_cxx_compiler_flag("-w" NOWARN) check_cxx_compiler_flag("-w" NOWARN)
skipping to change at line 736 skipping to change at line 726
file(GLOB_RECURSE NOWARN_SRC contrib/*.cpp contrib/*.c contrib/*.f) file(GLOB_RECURSE NOWARN_SRC contrib/*.cpp contrib/*.c contrib/*.f)
set_compile_flags(NOWARN_SRC "-w") set_compile_flags(NOWARN_SRC "-w")
endif() endif()
list(SORT CONFIG_OPTIONS) list(SORT CONFIG_OPTIONS)
set(GETDP_CONFIG_OPTIONS "") set(GETDP_CONFIG_OPTIONS "")
foreach(OPT ${CONFIG_OPTIONS}) foreach(OPT ${CONFIG_OPTIONS})
set(GETDP_CONFIG_OPTIONS "${GETDP_CONFIG_OPTIONS} ${OPT}") set(GETDP_CONFIG_OPTIONS "${GETDP_CONFIG_OPTIONS} ${OPT}")
endforeach() endforeach()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Common/GetDPConfig.h.in configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/common/GetDPConfig.h.in
${CMAKE_CURRENT_BINARY_DIR}/Common/GetDPConfig.h) ${CMAKE_CURRENT_BINARY_DIR}/src/common/GetDPConfig.h)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Common/GetDPVersion.h.in configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/common/GetDPVersion.h.in
${CMAKE_CURRENT_BINARY_DIR}/Common/GetDPVersion.h) ${CMAKE_CURRENT_BINARY_DIR}/src/common/GetDPVersion.h)
# the texi file is modified in the source directory (not ideal, but since git # the texi file is modified in the source directory (not ideal, but since git
# tracks the contents of the file this is acceptable as it will only change when # tracks the contents of the file this is acceptable as it will only change when
# the actual version is changed - not for each git hash) # the actual version is changed - not for each git hash)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doc/texinfo/version.texi.in configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doc/texinfo/version.texi.in
${CMAKE_CURRENT_SOURCE_DIR}/doc/texinfo/version.texi) ${CMAKE_CURRENT_SOURCE_DIR}/doc/texinfo/version.texi)
# process cmake environment variables so we can append them to the -I # process cmake environment variables so we can append them to the -I
# include commands. This is not recommended (we should only use the # include commands. This is not recommended (we should only use the
# cache variables) but it is very convenient: otherwise we have to # cache variables) but it is very convenient: otherwise we have to
skipping to change at line 790 skipping to change at line 780
message(STATUS "Using static libgfortran") message(STATUS "Using static libgfortran")
foreach(STR ${LINK_LIBRARIES}) foreach(STR ${LINK_LIBRARIES})
string(REPLACE "-lgfortran" ${GFORTRAN_STATIC} STR2 ${STR}) string(REPLACE "-lgfortran" ${GFORTRAN_STATIC} STR2 ${STR})
list(APPEND LINK_LIBRARIES2 ${STR2}) list(APPEND LINK_LIBRARIES2 ${STR2})
endforeach() endforeach()
set(LINK_LIBRARIES ${LINK_LIBRARIES2}) set(LINK_LIBRARIES ${LINK_LIBRARIES2})
endif() endif()
endif() endif()
# we could specify include dirs more selectively, but this is simpler # we could specify include dirs more selectively, but this is simpler
include_directories(Common Interface Kernel Numeric Functions include_directories(src/common src/interface src/kernel src/numeric src/function
${EXTERNAL_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR}/Common) s
${EXTERNAL_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR}/src/common)
# set this for external codes that might include this CMakeList file # set this for external codes that might include this CMakeList file
set(GETDP_EXTERNAL_INCLUDE_DIRS ${EXTERNAL_INCLUDES} CACHE set(GETDP_EXTERNAL_INCLUDE_DIRS ${EXTERNAL_INCLUDES} CACHE
STRING "External include directories" FORCE) STRING "External include directories" FORCE)
set(GETDP_EXTERNAL_LIBRARIES ${EXTERNAL_LIBRARIES} CACHE set(GETDP_EXTERNAL_LIBRARIES ${EXTERNAL_LIBRARIES} CACHE
STRING "External libraries" FORCE) STRING "External libraries" FORCE)
# group sources for easier navigation in IDEs # group sources for easier navigation in IDEs
foreach(DIR ${GETDP_DIRS}) foreach(DIR ${GETDP_DIRS})
string(REGEX REPLACE "\\+" "\\\\+" DIR ${DIR}) string(REGEX REPLACE "\\+" "\\\\+" DIR ${DIR})
skipping to change at line 858 skipping to change at line 848
add_definitions(-DBUILD_ANDROID -DHAVE_SMALL_STACK) add_definitions(-DBUILD_ANDROID -DHAVE_SMALL_STACK)
add_library(androidGetdp SHARED ${GETDP_SRC}) add_library(androidGetdp SHARED ${GETDP_SRC})
set_target_properties(androidGetdp PROPERTIES OUTPUT_NAME getdp) set_target_properties(androidGetdp PROPERTIES OUTPUT_NAME getdp)
target_link_libraries(androidGetdp ${LINK_LIBRARIES} ${LIBRARY_DEPS}) target_link_libraries(androidGetdp ${LINK_LIBRARIES} ${LIBRARY_DEPS})
add_custom_command(TARGET androidGetdp POST_BUILD COMMAND add_custom_command(TARGET androidGetdp POST_BUILD COMMAND
${CMAKE_STRIP} ${LIBRARY_OUTPUT_PATH}/libgetdp.so) ${CMAKE_STRIP} ${LIBRARY_OUTPUT_PATH}/libgetdp.so)
endif() endif()
# binary target # binary target
if(ENABLE_BUILD_DYNAMIC) if(ENABLE_BUILD_DYNAMIC)
add_executable(getdp Main/Main.cpp) add_executable(getdp src/main/Main.cpp)
target_link_libraries(getdp shared) target_link_libraries(getdp shared)
else() else()
add_executable(getdp Main/Main.cpp ${GETDP_SRC}) add_executable(getdp src/main/Main.cpp ${GETDP_SRC})
target_link_libraries(getdp ${LINK_LIBRARIES}) target_link_libraries(getdp ${LINK_LIBRARIES})
endif() endif()
# Windows specific linker options # Windows specific linker options
if(WIN32 AND NOT MSVC OR CYGWIN) if(WIN32 AND NOT MSVC OR CYGWIN)
set(FLAGS "-Wl,--image-base -Wl,0x10000000 -static") set(FLAGS "-Wl,--image-base -Wl,0x10000000 -static")
set_target_properties(getdp PROPERTIES LINK_FLAGS "${FLAGS} -municode") set_target_properties(getdp PROPERTIES LINK_FLAGS "${FLAGS} -municode")
if(ENABLE_BUILD_SHARED OR ENABLE_BUILD_DYNAMIC) if(ENABLE_BUILD_SHARED OR ENABLE_BUILD_DYNAMIC)
set_target_properties(shared PROPERTIES LINK_FLAGS "${FLAGS}") set_target_properties(shared PROPERTIES LINK_FLAGS "${FLAGS}")
# remove -Wl,-Bdynamic flags # remove -Wl,-Bdynamic flags
skipping to change at line 884 skipping to change at line 874
endif() endif()
endif() endif()
# parser target # parser target
find_program(BISON bison) find_program(BISON bison)
find_program(FLEX flex) find_program(FLEX flex)
if(BISON AND FLEX) if(BISON AND FLEX)
add_custom_target(parser add_custom_target(parser
COMMAND ${BISON} -p getdp_yy --output ProParser.tab.cpp -d P roParser.y COMMAND ${BISON} -p getdp_yy --output ProParser.tab.cpp -d P roParser.y
COMMAND ${FLEX} -P getdp_yy -o ProParser.yy.cpp ProParser.l COMMAND ${FLEX} -P getdp_yy -o ProParser.yy.cpp ProParser.l
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Interface) WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src/interface)
endif() endif()
# miscellaneaous targets # miscellaneaous targets
if(UNIX) if(UNIX)
# cannot use cmake's file search functions here (they would only # cannot use cmake's file search functions here (they would only
# find files existing at configuration time) # find files existing at configuration time)
add_custom_target(purge add_custom_target(purge
COMMAND rm -f `find . -name *~ -o -name *~~` COMMAND rm -f `find . -name *~ -o -name *~~`
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
add_custom_target(etags add_custom_target(etags
COMMAND etags `find . -name *.cpp -o -name *.h -o -name *.y` COMMAND etags `find . -name *.cpp -o -name *.h -o -name *.y`
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
endif() endif()
set(WELCOME_FILE ${CMAKE_CURRENT_SOURCE_DIR}/doc/WELCOME.txt) set(WELCOME_FILE ${CMAKE_CURRENT_SOURCE_DIR}/doc/WELCOME.txt)
set(LICENSE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.txt) set(LICENSE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.txt)
set(CREDITS_FILE ${CMAKE_CURRENT_SOURCE_DIR}/CREDITS.txt) set(CREDITS_FILE ${CMAKE_CURRENT_SOURCE_DIR}/CREDITS.txt)
set(CHANGELOG_FILE ${CMAKE_CURRENT_SOURCE_DIR}/CHANGELOG.txt) set(CHANGELOG_FILE ${CMAKE_CURRENT_SOURCE_DIR}/CHANGELOG.txt)
file(GLOB DEMO_FILES ${CMAKE_CURRENT_SOURCE_DIR}/demos/*.pro file(GLOB EXAMPLE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/examples/*.pro
${CMAKE_CURRENT_SOURCE_DIR}/demos/*.geo ${CMAKE_CURRENT_SOURCE_DIR}/examples/*.geo
${CMAKE_CURRENT_SOURCE_DIR}/demos/*.msh) ${CMAKE_CURRENT_SOURCE_DIR}/examples/*.msh)
file(GLOB TEMPLATE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/templates/*.pro file(GLOB TEMPLATE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/templates/*.pro
${CMAKE_CURRENT_SOURCE_DIR}/templates/*.txt) ${CMAKE_CURRENT_SOURCE_DIR}/templates/*.txt)
file(GLOB DEMO_FILES_TMP ${CMAKE_CURRENT_SOURCE_DIR}/demos/*.pre file(GLOB EXAMPLE_FILES_TMP ${CMAKE_CURRENT_SOURCE_DIR}/examples/*.pre
${CMAKE_CURRENT_SOURCE_DIR}/demos/*.res ${CMAKE_CURRENT_SOURCE_DIR}/examples/*.res
${CMAKE_CURRENT_SOURCE_DIR}/demos/*.txt ${CMAKE_CURRENT_SOURCE_DIR}/examples/*.txt
${CMAKE_CURRENT_SOURCE_DIR}/demos/*.pos ${CMAKE_CURRENT_SOURCE_DIR}/examples/*.pos
${CMAKE_CURRENT_SOURCE_DIR}/demos/*.par) ${CMAKE_CURRENT_SOURCE_DIR}/examples/*.par)
set(TEX_DIR ${CMAKE_CURRENT_SOURCE_DIR}/doc/texinfo) set(TEX_DIR ${CMAKE_CURRENT_SOURCE_DIR}/doc/texinfo)
file(GLOB TEX_SRC ${TEX_DIR}/*.texi) file(GLOB TEX_SRC ${TEX_DIR}/*.texi)
set(TEX_OBJ ${TEX_DIR}/getdp.aux ${TEX_DIR}/getdp.cp ${TEX_DIR}/getdp.cps set(TEX_OBJ ${TEX_DIR}/getdp.aux ${TEX_DIR}/getdp.cp ${TEX_DIR}/getdp.cps
${TEX_DIR}/getdp.fn ${TEX_DIR}/getdp.html ${TEX_DIR}/getdp.info ${TEX_DIR}/g etdp.ky ${TEX_DIR}/getdp.fn ${TEX_DIR}/getdp.html ${TEX_DIR}/getdp.info ${TEX_DIR}/g etdp.ky
${TEX_DIR}/getdp.log ${TEX_DIR}/getdp.pdf ${TEX_DIR}/getdp.pg ${TEX_DIR}/get dp.toc ${TEX_DIR}/getdp.log ${TEX_DIR}/getdp.pdf ${TEX_DIR}/getdp.pg ${TEX_DIR}/get dp.toc
${TEX_DIR}/getdp.tp ${TEX_DIR}/getdp.tps ${TEX_DIR}/getdp.txt ${TEX_DIR}/get dp.vr ${TEX_DIR}/getdp.tp ${TEX_DIR}/getdp.tps ${TEX_DIR}/getdp.txt ${TEX_DIR}/get dp.vr
${TEX_DIR}/getdp.vrs) ${TEX_DIR}/getdp.vrs)
macro(unix2dos VARNAME) macro(unix2dos VARNAME)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unix2dos) file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unix2dos)
skipping to change at line 951 skipping to change at line 941
set(GETDP_DOC .) set(GETDP_DOC .)
set(GETDP_MAN .) set(GETDP_MAN .)
set(GETDP_INC .) set(GETDP_INC .)
if(CYGWIN) if(CYGWIN)
unix2dos(GETDP_API) unix2dos(GETDP_API)
unix2dos(GETDP_PRIVATE_API) unix2dos(GETDP_PRIVATE_API)
unix2dos(WELCOME_FILE) unix2dos(WELCOME_FILE)
unix2dos(LICENSE_FILE) unix2dos(LICENSE_FILE)
unix2dos(CREDITS_FILE) unix2dos(CREDITS_FILE)
unix2dos(CHANGELOG_FILE) unix2dos(CHANGELOG_FILE)
unix2dos(DEMO_FILES) unix2dos(EXAMPLE_FILES)
unix2dos(TEMPLATE_FILES) unix2dos(TEMPLATE_FILES)
endif() endif()
else() else()
include(GNUInstallDirs) include(GNUInstallDirs)
set(GETDP_BIN ${CMAKE_INSTALL_BINDIR}) set(GETDP_BIN ${CMAKE_INSTALL_BINDIR})
set(GETDP_LIB ${CMAKE_INSTALL_LIBDIR}) set(GETDP_LIB ${CMAKE_INSTALL_LIBDIR})
set(GETDP_DOC ${CMAKE_INSTALL_DOCDIR}) set(GETDP_DOC ${CMAKE_INSTALL_DOCDIR})
set(GETDP_MAN ${CMAKE_INSTALL_MANDIR}/man1) set(GETDP_MAN ${CMAKE_INSTALL_MANDIR}/man1)
set(GETDP_INC ${CMAKE_INSTALL_INCLUDEDIR}) set(GETDP_INC ${CMAKE_INSTALL_INCLUDEDIR})
endif() endif()
skipping to change at line 981 skipping to change at line 971
endif() endif()
if(ENABLE_BUILD_LIB OR ENABLE_BUILD_SHARED OR ENABLE_BUILD_DYNAMIC) if(ENABLE_BUILD_LIB OR ENABLE_BUILD_SHARED OR ENABLE_BUILD_DYNAMIC)
install(FILES ${GETDP_API} DESTINATION ${GETDP_INC}) install(FILES ${GETDP_API} DESTINATION ${GETDP_INC})
if(ENABLE_PRIVATE_API) if(ENABLE_PRIVATE_API)
install(FILES ${GETDP_PRIVATE_API} DESTINATION ${GETDP_INC}/getdp) install(FILES ${GETDP_PRIVATE_API} DESTINATION ${GETDP_INC}/getdp)
endif() endif()
endif() endif()
install(FILES ${WELCOME_FILE} DESTINATION ${GETDP_DOC} RENAME README.txt) install(FILES ${WELCOME_FILE} DESTINATION ${GETDP_DOC} RENAME README.txt)
install(FILES ${LICENSE_FILE} DESTINATION ${GETDP_DOC}) install(FILES ${LICENSE_FILE} DESTINATION ${GETDP_DOC})
install(FILES ${CREDITS_FILE} DESTINATION ${GETDP_DOC}) install(FILES ${CREDITS_FILE} DESTINATION ${GETDP_DOC})
install(FILES ${DEMO_FILES} DESTINATION ${GETDP_DOC}/demos) install(FILES ${EXAMPLE_FILES} DESTINATION ${GETDP_DOC}/examples)
install(FILES ${TEMPLATE_FILES} DESTINATION ${GETDP_DOC}/templates) install(FILES ${TEMPLATE_FILES} DESTINATION ${GETDP_DOC}/templates)
if(UNIX AND NOT CYGWIN) if(UNIX AND NOT CYGWIN)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/doc/getdp.1 DESTINATION ${GETDP_MAN} ) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/doc/getdp.1 DESTINATION ${GETDP_MAN} )
endif() endif()
if(ENABLE_WRAP_PYTHON) if(ENABLE_WRAP_PYTHON)
find_package(SWIG REQUIRED) find_package(SWIG REQUIRED)
include(${SWIG_USE_FILE}) include(${SWIG_USE_FILE})
find_package(PythonLibs) find_package(PythonLibs)
if(SWIG_FOUND AND PYTHONLIBS_FOUND) if(SWIG_FOUND AND PYTHONLIBS_FOUND)
message(STATUS "Found SWIG version " ${SWIG_VERSION}) message(STATUS "Found SWIG version " ${SWIG_VERSION})
include_directories(${PYTHON_INCLUDE_PATH}) include_directories(${PYTHON_INCLUDE_PATH})
include_directories(${CMAKE_CURRENT_SOURCE_DIR}) include_directories(${CMAKE_CURRENT_SOURCE_DIR})
set(CMAKE_SWIG_FLAGS "") set(CMAKE_SWIG_FLAGS "")
set_source_files_properties(Kernel/getdp.i PROPERTIES CPLUSPLUS ON) set_source_files_properties(src/kernel/getdp.i PROPERTIES CPLUSPLUS ON)
swig_add_module(getdp python Kernel/getdp.i) swig_add_module(getdp python src/kernel/getdp.i)
swig_link_libraries(getdp ${PYTHON_LIBRARIES} shared) swig_link_libraries(getdp ${PYTHON_LIBRARIES} shared)
if(APPLE) if(APPLE)
set_target_properties("_getdp" PROPERTIES LINK_FLAGS set_target_properties("_getdp" PROPERTIES LINK_FLAGS
"-undefined suppress -flat_namespace") "-undefined suppress -flat_namespace")
endif() endif()
endif() endif()
endif() endif()
add_custom_target(clean_demos COMMAND ${CMAKE_COMMAND} -E remove ${DEMO_FILES_TM P}) add_custom_target(clean_examples COMMAND ${CMAKE_COMMAND} -E remove ${EXAMPLE_FI LES_TMP})
add_custom_target(get_headers add_custom_target(get_headers
COMMAND ${CMAKE_COMMAND} -E make_directory Headers/getdp COMMAND ${CMAKE_COMMAND} -E make_directory Headers/getdp
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
foreach(FILE ${GETDP_API}) foreach(FILE ${GETDP_API})
add_custom_command(TARGET get_headers POST_BUILD COMMAND ${CMAKE_COMMAND} add_custom_command(TARGET get_headers POST_BUILD COMMAND ${CMAKE_COMMAND}
-E copy_if_different ${FILE} ${CMAKE_CURRENT_BINARY_DIR}/Headers/ -E copy_if_different ${FILE} ${CMAKE_CURRENT_BINARY_DIR}/Headers/
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
endforeach() endforeach()
if(ENABLE_PRIVATE_API) if(ENABLE_PRIVATE_API)
skipping to change at line 1139 skipping to change at line 1129
set(CPACK_INSTALL_COMMANDS "rm -rf ${CMAKE_CURRENT_BINARY_DIR}/_CPack_Packages ") set(CPACK_INSTALL_COMMANDS "rm -rf ${CMAKE_CURRENT_BINARY_DIR}/_CPack_Packages ")
endif() endif()
if(WIN32 OR CYGWIN) if(WIN32 OR CYGWIN)
set(CPACK_GENERATOR ZIP) set(CPACK_GENERATOR ZIP)
else() else()
set(CPACK_GENERATOR TGZ) set(CPACK_GENERATOR TGZ)
endif() endif()
# code signing # code signing
if(APPLE AND PACKAGER STREQUAL "geuzaine") set(APP _CPack_Packages/Darwin/TGZ/${CPACK_PACKAGE_FILE_NAME}/bin/getdp)
if(APPLE AND EXISTS ${APP} AND PACKAGER STREQUAL "geuzaine")
set(CODESIGN "codesign -v -s \"Developer ID Application: Christophe Geuzaine\" ") set(CODESIGN "codesign -v -s \"Developer ID Application: Christophe Geuzaine\" ")
set(APPDIR _CPack_Packages/Darwin/TGZ/${CPACK_PACKAGE_FILE_NAME}/bin) install(CODE "execute_process(COMMAND ${CODESIGN} ${APP})")
install(CODE "execute_process(COMMAND ${CODESIGN} ${APPDIR}/getdp)")
endif() endif()
include(CPack) include(CPack)
# comprehensive getdp testing is done through in the onelab documentation # comprehensive getdp testing is done through in the onelab documentation
# project (as it also requires Gmsh) # project (as it also requires Gmsh)
include(CTest) include(CTest)
file(GLOB_RECURSE TESTS demos/magnet.pro) file(GLOB_RECURSE TESTS examples/magnet.pro)
foreach(TESTFILE ${TESTS}) foreach(TESTFILE ${TESTS})
# use relative path for Cygwin/MinGW (the pure win exe built with the mingw # use relative path for Cygwin/MinGW (the pure win exe built with the mingw
# compilers does not understand a full Cygwin-style path) # compilers does not understand a full Cygwin-style path)
FILE(RELATIVE_PATH TEST ${CMAKE_CURRENT_BINARY_DIR} ${TESTFILE}) FILE(RELATIVE_PATH TEST ${CMAKE_CURRENT_BINARY_DIR} ${TESTFILE})
add_test(${TEST} getdp ${TEST} -solve \#1 -pos \#1) add_test(${TEST} getdp ${TEST} -solve \#1 -pos \#1)
endforeach() endforeach()
message(STATUS "") message(STATUS "")
message(STATUS "GetDP ${GETDP_VERSION} has been configured for ${GETDP_OS}:") message(STATUS "GetDP ${GETDP_VERSION} has been configured for ${GETDP_OS}:")
message(STATUS "") message(STATUS "")
 End of changes. 26 change blocks. 
53 lines changed or deleted 45 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)