Skip to content
Snippets Groups Projects
CMakeLists.txt 3.33 KiB
Newer Older
  • Learn to ignore specific revisions
  • #####################
    ### OGS-6 Project ###
    #####################
    
    
    # Specify minimum CMake version
    
    cmake_minimum_required(VERSION 2.8.3)
    
    
    # Project name
    project( OGS-6 )
    
    
    ### CMake includes ###
    
    INCLUDE(scripts/cmake/CheckTypeSizes.cmake)
    INCLUDE(scripts/cmake/FindIncludeHeader.cmake)
    
    Lars Bilke's avatar
    Lars Bilke committed
    INCLUDE(scripts/cmake/Functions.cmake)
    
    INCLUDE(scripts/cmake/CMakeSetup.cmake)
    
    INCLUDE(scripts/cmake/CompilerSetup.cmake)
    
    IF(NOT OGS_NO_EXTERNAL_LIBS)
    	INCLUDE(scripts/cmake/Find.cmake)
    ENDIF() # NOT OGS_NO_EXTERNAL_LIBS
    
    INCLUDE(scripts/cmake/ProjectSetup.cmake)
    
    INCLUDE(scripts/cmake/DocumentationSetup.cmake)
    
    ###########################################################################
    ### OGS version information. Adjust these if you release a new version. ###
    ###########################################################################
    SET (OGS_VERSION_MAJOR 0)
    SET (OGS_VERSION_MINOR 0)
    SET (OGS_VERSION_PATCH 1)
    SET (OGS_RELEASE_PERSONS "LB/TF/KR")
    SET (OGS_VERSION "${OGS_VERSION_MAJOR}.${OGS_VERSION_MINOR}.${OGS_VERSION_PATCH}(${OGS_RELEASE_PERSONS})")
    SET (OGS_DATE "2012-08-20")
    
    
    ###############
    ### Options ###
    ###############
    
    # Profiling
    IF((CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) AND GPROF_PATH)
    	OPTION(OGS_PROFILE "Enables compiling with flags set for profiling with gprof." OFF)
    ENDIF() # GCC AND GPROF_PATH
    
    # Enable / Disable parts
    
    Lars Bilke's avatar
    Lars Bilke committed
    OPTION(OGS_DONT_USE_QT "Disables all Qt specific code." OFF)
    
    
    OPTION(OGS_BUILD_CLI "Should the OGS simulator be built?" ON)
    OPTION(OGS_BUILD_TESTS "Should the test executables be built?" ON)
    OPTION(OGS_BUILD_GUI "Should the Data Explorer be built?" OFF)
    
    OPTION(OGS_BUILD_UTILS "Should the utilities programms be built?" OFF)
    
    
    OPTION(OGS_NO_EXTERNAL_LIBS "Builds OGS without any external dependencies." OFF)
    
    
    # Logging
    OPTION(OGS_DISABLE_LOGGING "Disables all logog messages." OFF)
    
    
    # Search paths
    SET(OGS_LIBS_DIR "" CACHE PATH "The path to the compiled third party libs (mainly used for Windows).")
    
    
    # Print CMake variable values
    IF (OGS_CMAKE_DEBUG)
    	INCLUDE(ListAllCMakeVariableValues)
    	list_all_cmake_variable_values()
    ENDIF (OGS_CMAKE_DEBUG)
    
    
    OPTION(OGS_BUILD_INFO "Should build information be generated" ON)
    IF (OGS_BUILD_INFO)
    	ADD_DEFINITIONS (-DOGS_BUILD_INFO)
    ENDIF (OGS_BUILD_INFO)
    
    
    Lars Bilke's avatar
    Lars Bilke committed
    # Packaging
    OPTION(OGS_PACKAGING "Creating installers / packages" OFF)
    OPTION_REQUIRES(OGS_PACKAGING_ZIP "Do you want to package as zip?" OGS_PACKAGING)
    IF(OGS_PACKAGING)
    	INCLUDE( scripts/cmake/Pack.cmake)
    ENDIF() #OGS_PACKAGING
    
    
    ######################
    ### Subdirectories ###
    ######################
    
    
    # Add subdirectories with the projects
    
    ADD_SUBDIRECTORY( GeoLib )
    
    ADD_SUBDIRECTORY( MathLib )
    
    ADD_SUBDIRECTORY( MeshLib )
    
    IF( OGS_BUILD_CLI )
    	ADD_SUBDIRECTORY( OGS )
    ENDIF() # OGS_BUILD_CLI
    IF( OGS_BUILD_TESTS )
    	ADD_SUBDIRECTORY( SimpleTests/MatrixTests )
    	ADD_SUBDIRECTORY( SimpleTests/MeshTests )
    	IF(NOT MSVC AND BLAS_FOUND AND LAPACK_FOUND)
    		ADD_SUBDIRECTORY( SimpleTests/SolverTests )
    	ENDIF()
    ENDIF() # OGS_BUILD_TESTS
    
    	ADD_DEFINITIONS(-DOGS_BUILD_GUI)
    
    ENDIF() # OGS_BUILD_GUI
    
    IF(OGS_BUILD_UTILS)
    	ADD_SUBDIRECTORY( Utils/SimpleMeshCreation )
    ENDIF() # OGS_BUILD_UTILS
    
    CONFIGURE_FILE (BaseLib/BuildInfo.h.in ${PROJECT_BINARY_DIR}/BaseLib/BuildInfo.h)
    
    Lars Bilke's avatar
    Lars Bilke committed
    CONFIGURE_FILE (BaseLib/Configure.h.in ${PROJECT_BINARY_DIR}/BaseLib/Configure.h)