-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathCMakeLists.txt
63 lines (50 loc) · 1.8 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# SPDX-License-Identifier: Unlicense
# SPDX-FileCopyrightText: 2024 NeoFOAM authors
cmake_minimum_required(VERSION 3.22.0)
project(
FoamAdapter
LANGUAGES C CXX
VERSION 0.1.0
DESCRIPTION "An implementation of FOAM")
if(NOT DEFINED ENV{FOAM_SRC})
message(FATAL_ERROR "You must source OpenFOAM before building FOAM_ADAPTER")
endif()
if(NOT $ENV{FOAM_API} GREATER_EQUAL 2406)
message(WARNING "OpenFOAM version < 2406")
endif()
# Print C Compiler and version
message("C Compiler: ${CMAKE_C_COMPILER}")
execute_process(
COMMAND ${CMAKE_C_COMPILER} --version
OUTPUT_VARIABLE C_COMPILER_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE)
message("C Compiler Version: ${C_COMPILER_VERSION}")
# Print C++ Compiler and version
message("C++ Compiler: ${CMAKE_CXX_COMPILER}")
execute_process(
COMMAND ${CMAKE_CXX_COMPILER} --version
OUTPUT_VARIABLE CXX_COMPILER_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE)
message("C++ Compiler Version: ${CXX_COMPILER_VERSION}")
option(FOAMADAPTER_BUILD_EXAMPLES "Build the NeoFOAM examples" OFF)
option(FOAMADAPTER_BUILD_TESTS "Build the unit tests" OFF)
option(FOAMADAPTER_BUILD_BENCHMARKS "Build benchmarks" OFF)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
# Add the cmake folder so the find_package command finds custom packages
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
# Set the output directories for all binaries and libraries
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
include(cmake/OpenFOAM.cmake)
add_subdirectory(include)
add_subdirectory(NeoFOAM)
add_subdirectory(src)
if(FOAMADAPTER_BUILD_EXAMPLES)
add_subdirectory(examples)
endif()
if(FOAMADAPTER_BUILD_TESTS)
enable_testing()
add_subdirectory(test)
endif()