Skip to content
Snippets Groups Projects
Commit 689ee4a6 authored by Tom Fischer's avatar Tom Fischer Committed by GitHub
Browse files

Merge pull request #1384 from bilke/cmake-file-search

CMake source files search improvements
parents 5ca414df 7e001270
No related branches found
No related tags found
No related merge requests found
GET_SOURCE_FILES(SOURCES_FileIO)
set(SOURCES ${SOURCES_FileIO})
GET_SOURCE_FILES(SOURCES)
if(NOT Shapelib_FOUND)
list(REMOVE_ITEM SOURCES SHPInterface.h SHPInterface.cpp)
endif()
GET_SOURCE_FILES(SOURCES_BASE_XML XmlIO)
set(SOURCES ${SOURCES} ${SOURCES_BASE_XML})
GET_SOURCE_FILES(SOURCES_BOOST_XML XmlIO/Boost)
set(SOURCES ${SOURCES} ${SOURCES_BOOST_XML})
if(QT4_FOUND)
GET_SOURCE_FILES(SOURCES_QT_XML XmlIO/Qt)
set(SOURCES ${SOURCES} ${SOURCES_QT_XML})
APPEND_SOURCE_FILES(SOURCES XmlIO/Qt)
endif()
GET_SOURCE_FILES(SOURCES_RAPID_XML XmlIO/Rapid)
set(SOURCES ${SOURCES} ${SOURCES_RAPID_XML})
GET_SOURCE_FILES(SOURCES_GMSH Gmsh)
set(SOURCES ${SOURCES} ${SOURCES_GMSH})
APPEND_SOURCE_FILES(SOURCES Gmsh)
if(QT4_FOUND)
GET_SOURCE_FILES(SOURCES_FEFLOW FEFLOW)
SET(SOURCES ${SOURCES} ${SOURCES_FEFLOW})
APPEND_SOURCE_FILES(SOURCES FEFLOW)
endif()
include(${PROJECT_SOURCE_DIR}/scripts/cmake/OGSEnabledElements.cmake)
......
GET_SOURCE_FILES(SOURCES)
GET_SOURCE_FILES(SOURCES_IO IO)
APPEND_SOURCE_FILES(SOURCES IO)
set(SOURCES ${SOURCES} ${SOURCES_IO})
GET_SOURCE_FILES(SOURCES_IO_BASE_XML IO/XmlIO)
set(SOURCES ${SOURCES} ${SOURCES_IO_BASE_XML})
APPEND_SOURCE_FILES(SOURCES IO/XmlIO)
if(QT4_FOUND)
GET_SOURCE_FILES(SOURCES_IO_QT_XML IO/XmlIO/Qt)
set(SOURCES ${SOURCES} ${SOURCES_IO_QT_XML})
APPEND_SOURCE_FILES(SOURCES IO/XmlIO/Qt)
endif()
list(APPEND SOURCES "${CMAKE_CURRENT_BINARY_DIR}/BuildInfo.cpp" BuildInfo.h)
......
# Source files
GET_SOURCE_FILES(SOURCES_GeoLib)
set(SOURCES ${SOURCES_GeoLib})
GET_SOURCE_FILES(SOURCES)
GET_SOURCE_FILES(SOURCES_IO IO)
GET_SOURCE_FILES(SOURCES_IO_Legacy IO/Legacy)
set(SOURCES ${SOURCES} ${SOURCES_IO} ${SOURCES_IO_Legacy})
APPEND_SOURCE_FILES(SOURCES IO)
APPEND_SOURCE_FILES(SOURCES IO/Legacy)
GET_SOURCE_FILES(SOURCES_IO_BASE_XML IO/XmlIO)
GET_SOURCE_FILES(SOURCES_IO_BOOST_XML IO/XmlIO/Boost)
GET_SOURCE_FILES(SOURCES_IO_RAPID_XML IO/XmlIO/Rapid)
set(SOURCES ${SOURCES} ${SOURCES_IO_BASE_XML} ${SOURCES_IO_BOOST_XML} ${SOURCES_IO_RAPID_XML})
APPEND_SOURCE_FILES(SOURCES IO/XmlIO/Rapid)
APPEND_SOURCE_FILES(SOURCES IO/XmlIO/Boost)
if(QT4_FOUND)
GET_SOURCE_FILES(SOURCES_IO_QT_XML IO/XmlIO/Qt)
set(SOURCES ${SOURCES} ${SOURCES_IO_QT_XML})
APPEND_SOURCE_FILES(SOURCES IO/XmlIO/Qt)
endif()
GET_SOURCE_FILES(SOURCES_IO_GMSHIO IO/Gmsh)
set(SOURCES ${SOURCES} ${SOURCES_IO_GMSHIO})
# Create the library
add_library(GeoLib ${SOURCES}
${CMAKE_CURRENT_SOURCE_DIR}/../ThirdParty/tetgen/predicates.cxx
......
# Source files
GET_SOURCE_FILES(SOURCES)
GET_SOURCE_FILES(SOURCES_ADSORPTION Adsorption)
set(SOURCES ${SOURCES} ${SOURCES_ADSORPTION})
APPEND_SOURCE_FILES(SOURCES Adsorption)
APPEND_SOURCE_FILES(SOURCES SolidModels)
add_library(MaterialLib ${SOURCES} )
add_library(MaterialLib ${SOURCES})
target_link_libraries(MaterialLib
BaseLib
)
#Source files grouped by a directory
GET_SOURCE_FILES(SOURCES_MATHLIB)
set(SOURCES ${SOURCES_MATHLIB})
GET_SOURCE_FILES(SOURCES)
GET_SOURCE_FILES(SOURCES_INTERPOLATIONALGORITHMS InterpolationAlgorithms)
set(SOURCES ${SOURCES} ${SOURCES_INTERPOLATIONALGORITHMS})
GET_SOURCE_FILES(SOURCES_INTEGRATION Integration)
set(SOURCES ${SOURCES} ${SOURCES_INTEGRATION})
GET_SOURCE_FILES(SOURCES_LINALG LinAlg)
set(SOURCES ${SOURCES} ${SOURCES_LINALG})
GET_SOURCE_FILES(SOURCES_LINALG_DENSE LinAlg/Dense)
set(SOURCES ${SOURCES} ${SOURCES_LINALG_DENSE})
GET_SOURCE_FILES(SOURCES_LINALG_SOLVERS LinAlg/Solvers)
set(SOURCES ${SOURCES} ${SOURCES_LINALG_SOLVERS})
GET_SOURCE_FILES(SOURCES_ODE ODE)
set(SOURCES ${SOURCES} ${SOURCES_ODE})
APPEND_SOURCE_FILES(SOURCES InterpolationAlgorithms)
APPEND_SOURCE_FILES(SOURCES Integration)
APPEND_SOURCE_FILES(SOURCES LinAlg)
APPEND_SOURCE_FILES(SOURCES LinAlg/Dense)
APPEND_SOURCE_FILES(SOURCES LinAlg/Solvers)
APPEND_SOURCE_FILES(SOURCES ODE)
APPEND_SOURCE_FILES(SOURCES Nonlinear)
if(OGS_USE_EIGEN)
GET_SOURCE_FILES(SOURCES_LINALG_EIGEN LinAlg/Eigen)
set(SOURCES ${SOURCES} ${SOURCES_LINALG_EIGEN})
APPEND_SOURCE_FILES(SOURCES LinAlg/Eigen)
endif()
if(OGS_USE_LIS)
GET_SOURCE_FILES(SOURCES_LINALG_LIS LinAlg/Lis)
set(SOURCES ${SOURCES} ${SOURCES_LINALG_LIS})
GET_SOURCE_FILES(SOURCES_LINALG_EIGENLIS LinAlg/EigenLis)
set(SOURCES ${SOURCES} ${SOURCES_LINALG_EIGENLIS})
APPEND_SOURCE_FILES(SOURCES LinAlg/Lis)
APPEND_SOURCE_FILES(SOURCES LinAlg/EigenLis)
endif()
if(OGS_USE_PETSC)
GET_SOURCE_FILES(SOURCES_LINALG_PETSC LinAlg/PETSc)
set(SOURCES ${SOURCES} ${SOURCES_LINALG_PETSC})
APPEND_SOURCE_FILES(SOURCES LinAlg/PETSc)
endif()
GET_SOURCE_FILES(SOURCES_NONLINEAR Nonlinear)
set(SOURCES ${SOURCES} ${SOURCES_NONLINEAR})
# Create the library
add_library(MathLib ${SOURCES})
......
# Source files
GET_SOURCE_FILES(SOURCES_MeshGeoToolsLib)
GET_SOURCE_FILES(SOURCES)
# Create the library
add_library(MeshGeoToolsLib ${SOURCES_MeshGeoToolsLib})
add_library(MeshGeoToolsLib ${SOURCES})
target_link_libraries(MeshGeoToolsLib
BaseLib
......
# Source files
GET_SOURCE_FILES(SOURCES_MESHLIB)
GET_SOURCE_FILES(SOURCES)
# It should be removed too for other MPI based DDC approach in future.
if(NOT OGS_USE_PETSC)
list(REMOVE_ITEM SOURCES_MESHLIB NodePartitionedMesh.h)
list(REMOVE_ITEM SOURCES NodePartitionedMesh.h)
endif()
GET_SOURCE_FILES(SOURCES_ELEMENTS Elements)
GET_SOURCE_FILES(SOURCES_EDITING MeshEditing)
GET_SOURCE_FILES(SOURCES_GENERATORS MeshGenerators)
GET_SOURCE_FILES(SOURCES_SEARCH MeshSearch)
GET_SOURCE_FILES(SOURCES_IO IO)
GET_SOURCE_FILES(SOURCES_IO_LEGACY IO/Legacy)
GET_SOURCE_FILES(SOURCES_IO_VTKIO IO/VtkIO)
GET_SOURCE_FILES(SOURCES_QUALITY MeshQuality)
GET_SOURCE_FILES(SOURCES_VTK Vtk)
set(SOURCES ${SOURCES_MESHLIB} ${SOURCES_ELEMENTS} ${SOURCES_EDITING}
${SOURCES_GENERATORS} ${SOURCES_QUALITY} ${SOURCES_SEARCH}
${SOURCES_IO} ${SOURCES_IO_LEGACY} ${SOURCES_IO_VTKIO} ${SOURCES_VTK})
APPEND_SOURCE_FILES(SOURCES MeshEditing)
APPEND_SOURCE_FILES(SOURCES MeshGenerators)
APPEND_SOURCE_FILES(SOURCES MeshSearch)
APPEND_SOURCE_FILES(SOURCES Elements)
APPEND_SOURCE_FILES(SOURCES IO)
APPEND_SOURCE_FILES(SOURCES IO/Legacy)
APPEND_SOURCE_FILES(SOURCES IO/VtkIO)
APPEND_SOURCE_FILES(SOURCES MeshQuality)
APPEND_SOURCE_FILES(SOURCES Vtk)
# It could be used for other MPI based DDC approach in future.
if(OGS_USE_PETSC)
GET_SOURCE_FILES(SOURCES_MPI_IO IO/MPI_IO)
set(SOURCES ${SOURCES} ${SOURCES_MPI_IO})
APPEND_SOURCE_FILES(SOURCES IO/MPI_IO)
endif()
# Create the library
......
#Source files grouped by a directory
GET_SOURCE_FILES(SOURCES_NUMLIB)
set(SOURCES ${SOURCES_NUMLIB})
GET_SOURCE_FILES(SOURCES_ASSEMBLER Assembler)
set(SOURCES ${SOURCES} ${SOURCES_ASSEMBLER})
GET_SOURCE_FILES(SOURCES_DOF DOF)
set(SOURCES ${SOURCES} ${SOURCES_DOF})
GET_SOURCE_FILES(SOURCES_FEM Fem)
set(SOURCES ${SOURCES} ${SOURCES_FEM})
GET_SOURCE_FILES(SOURCES_FEM_COORDINATESMAPPING Fem/CoordinatesMapping)
set(SOURCES ${SOURCES} ${SOURCES_FEM_COORDINATESMAPPING})
GET_SOURCE_FILES(SOURCES_FEM_FINTIEELEMENT Fem/FiniteElement)
set(SOURCES ${SOURCES} ${SOURCES_FEM_FINTIEELEMENT})
GET_SOURCE_FILES(SOURCES_FEM_INTEGRATION Fem/Integration)
set(SOURCES ${SOURCES} ${SOURCES_FEM_INTEGRATION})
GET_SOURCE_FILES(SOURCES_FEM_SHAPEFUNCTION Fem/ShapeFunction)
set(SOURCES ${SOURCES} ${SOURCES_FEM_SHAPEFUNCTION})
GET_SOURCE_FILES(SOURCES_TIMESTEP TimeStepping)
GET_SOURCE_FILES(SOURCES_TIMESTEP_ALGORITHMS TimeStepping/Algorithms)
set(SOURCES ${SOURCES} ${SOURCES_TIMESTEP} ${SOURCES_TIMESTEP_ALGORITHMS})
GET_SOURCE_FILES(SOURCES_FUNCTION Function)
set(SOURCES ${SOURCES} ${SOURCES_FUNCTION})
GET_SOURCE_FILES(SOURCES_DISTRIBUTION Distribution)
set(SOURCES ${SOURCES} ${SOURCES_DISTRIBUTION})
GET_SOURCE_FILES(SOURCES_ODESOLVER ODESolver)
set(SOURCES ${SOURCES} ${SOURCES_ODESOLVER})
GET_SOURCE_FILES(SOURCES_EXTRAPOLATION Extrapolation)
set(SOURCES ${SOURCES} ${SOURCES_EXTRAPOLATION})
GET_SOURCE_FILES(SOURCES)
APPEND_SOURCE_FILES(SOURCES Assembler)
APPEND_SOURCE_FILES(SOURCES DOF)
APPEND_SOURCE_FILES(SOURCES Fem)
APPEND_SOURCE_FILES(SOURCES Fem/CoordinatesMapping)
APPEND_SOURCE_FILES(SOURCES Fem/FiniteElement)
APPEND_SOURCE_FILES(SOURCES Fem/Integration)
APPEND_SOURCE_FILES(SOURCES Fem/ShapeFunction)
APPEND_SOURCE_FILES(SOURCES TimeStepping)
APPEND_SOURCE_FILES(SOURCES TimeStepping/Algorithms)
APPEND_SOURCE_FILES(SOURCES Function)
APPEND_SOURCE_FILES(SOURCES Distribution)
APPEND_SOURCE_FILES(SOURCES ODESolver)
APPEND_SOURCE_FILES(SOURCES Extrapolation)
# Create the library
add_library(NumLib ${SOURCES})
......
......@@ -19,6 +19,10 @@ macro(GET_SOURCE_FILES SOURCE_FILES)
file(GLOB GET_SOURCE_FILES_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${DIR}/*.cpp)
set(${SOURCE_FILES} ${GET_SOURCE_FILES_HEADERS} ${GET_SOURCE_FILES_TEMPLATES} ${GET_SOURCE_FILES_SOURCES})
list(LENGTH ${SOURCE_FILES} NUM_FILES)
if(${NUM_FILES} EQUAL 0)
message(FATAL_ERROR "No source files found in ${DIR}")
endif()
# Adapt DIR var to backslash syntax of SOURCE_GROUP cmd
if(${ARGC} EQUAL 2)
......
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