HPCW 3.0
Loading...
Searching...
No Matches
fiat.cmake
Go to the documentation of this file.
1# Copyright (c) 2020 - 2024 David Guibert
2# Copyright (c) 2024 Antoine Morvan
3# Copyright (c) 2024 Samuel Hatfield
4# Copyright (c) 2024 - 2025 Niclas Schroeter
5# Copyright (c) 2024 - 2025 Sam Hatfield
6# All rights reserved.
7#
8# SPDX-License-Identifier: Apache-2.0
9
10set_property(GLOBAL PROPERTY fiat_can_use_system TRUE)
11set_property(GLOBAL PROPERTY fiat_depends mpi ecbuild)
12
13set(fiat_cmake_args "" CACHE STRING "Custom CMake arguments for fiat")
14set(fiat_build_args "" CACHE STRING "Custom Make arguments for fiat")
15
16if(fiat_enabled)
17 if(USE_SYSTEM_fiat)
18 message(STATUS "fiat: enabled (system installed)")
19 find_package(Fiat REQUIRED)
20 else()
21 message(STATUS "fiat: enabled (internally built)")
22
23 set(fiat_depends_ep ecbuild MPI::MPI_C MPI::MPI_Fortran)
24
25 ExternalProject_Data_Add(
26 fiat
27 ${fiat_revision}
28 DEPENDS ${fiat_depends_ep}
29 CMAKE_ARGS ${cmake_params}
30 # -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
31 -DCMAKE_INSTALL_PREFIX:FILEPATH=<INSTALL_DIR>
32 -DENABLE_MPI:BOOL=ON
33 -DENABLE_FCKIT:BOOL=OFF
34 -DENABLE_TESTS:BOOL=OFF # drhook_ex? link with CXX instead of Fortran
35 ${default_cmake_args}
36 ${fiat_cmake_args}
37 BUILD_COMMAND ${CMAKE_MAKE_PROGRAM} -j${BUILD_PARALLEL_LEVEL} ${default_build_args} ${fiat_build_args})
38
39 ExternalProject_Get_Property(fiat INSTALL_DIR)
40 set(fiat_DIR ${INSTALL_DIR})
41
42 set_if_not_present(ENV{PATH} "$ENV{PATH}" "${fiat_DIR}/bin")
43 set_if_not_present(ENV{LD_LIBRARY_PATH} "$ENV{LD_LIBRARY_PATH}"
44 "${fiat_DIR}/lib")
45
46 ExternalProject_Get_Property(fiat BINARY_DIR)
47 set(fiat_BIN_DIR ${BINARY_DIR})
48 set_if_not_present(ENV{PATH} "$ENV{PATH}" "${fiat_BIN_DIR}/bin")
49 endif()
50
51endif(fiat_enabled)