diff --git a/Applications/FileIO/CMakeLists.txt b/Applications/FileIO/CMakeLists.txt index 5ab08941465cee49587895c257a1097cbffe1cee..5b9d973135fe3f991daca2a6fe77392a1255c662 100644 --- a/Applications/FileIO/CMakeLists.txt +++ b/Applications/FileIO/CMakeLists.txt @@ -1,24 +1,14 @@ -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) diff --git a/BaseLib/CMakeLists.txt b/BaseLib/CMakeLists.txt index 7ff7e6df19f5801e66eea0ffbbd43f2c0a0ed8bb..5a1bc9ee4693695e9e768e45b7ae319cbce58ab2 100644 --- a/BaseLib/CMakeLists.txt +++ b/BaseLib/CMakeLists.txt @@ -1,14 +1,10 @@ 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) diff --git a/GeoLib/CMakeLists.txt b/GeoLib/CMakeLists.txt index 6e563dafb967a04178adaf39a8db0f7e71f3672b..3607d0ab003fbf0567b0fa562c2dcbf21a765f8d 100644 --- a/GeoLib/CMakeLists.txt +++ b/GeoLib/CMakeLists.txt @@ -1,24 +1,16 @@ # 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 diff --git a/MaterialLib/CMakeLists.txt b/MaterialLib/CMakeLists.txt index a3a7536d90948486b2e83c2f656446e00cb2c2a9..3e0702b3c81f5a967e1681c36da7ffc6f03d51b4 100644 --- a/MaterialLib/CMakeLists.txt +++ b/MaterialLib/CMakeLists.txt @@ -1,11 +1,8 @@ -# 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 ) diff --git a/MathLib/CMakeLists.txt b/MathLib/CMakeLists.txt index 3d77de3e611aa3f365884f43555a81be6e808d73..b0b5e5a54dc8e61dca0958fcdf74bb4d6288ce4c 100644 --- a/MathLib/CMakeLists.txt +++ b/MathLib/CMakeLists.txt @@ -1,46 +1,27 @@ #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}) diff --git a/MeshGeoToolsLib/CMakeLists.txt b/MeshGeoToolsLib/CMakeLists.txt index d1bbdc54b976551bb1eac352b7b94e0394a153e7..e54377fa1adc471858eae1413ddcb53c7de9b57b 100644 --- a/MeshGeoToolsLib/CMakeLists.txt +++ b/MeshGeoToolsLib/CMakeLists.txt @@ -1,8 +1,8 @@ # 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 diff --git a/MeshLib/CMakeLists.txt b/MeshLib/CMakeLists.txt index a6e3926b582b466bffa284c8226b69e11b5d2228..45929e8c9e08d8609f36968aaf757c98e8a8c64b 100644 --- a/MeshLib/CMakeLists.txt +++ b/MeshLib/CMakeLists.txt @@ -1,29 +1,23 @@ -# 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 diff --git a/NumLib/CMakeLists.txt b/NumLib/CMakeLists.txt index b23206f9fd9053f15e8aea5b150bd607265fee34..57dc953798a702c0512552b51d42d2bc7844b90e 100644 --- a/NumLib/CMakeLists.txt +++ b/NumLib/CMakeLists.txt @@ -1,38 +1,18 @@ -#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}) diff --git a/scripts/cmake/Functions.cmake b/scripts/cmake/Functions.cmake index fcbf1d19dfd58f40fdd84ab9f1f89f669f4c67ad..0c372bbe64710ea398fb1c82766f7da3570c17ed 100644 --- a/scripts/cmake/Functions.cmake +++ b/scripts/cmake/Functions.cmake @@ -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)