Skip to content
Snippets Groups Projects
CMakeLists.txt 3.33 KiB
Newer Older
#####################
### 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)