target_precompile_headers(<target> <INTERFACE|PUBLIC|PRIVATE> [header1...] [<INTERFACE|PUBLIC|PRIVATE> [header2...] ...])
target_precompile_headers(<target> <INTERFACE|PUBLIC|PRIVATE> [header1...] [<INTERFACE|PUBLIC|PRIVATE> [header2...] ...])
target_precompile_headers(httplib::httplib INTERFACE "${HTTPLIB_HEADER_PATH}")
target_precompile_headers(MtKaHyPar-Sources INTERFACE definitions.h)
target_precompile_headers(Base64 INTERFACE <string>)
target_precompile_headers(${_TARG} INTERFACE $<BUILD_INTERFACE:${_BINARY_IFACE}>)
target_precompile_headers(sdl2 INTERFACE ${SDL_PCH})
target_precompile_headers(
cpp_pch_files
INTERFACE
"${PROJECT_SOURCE_DIR}/src/EnergyPlus/DataGlobalConstants.hh"
"${PROJECT_SOURCE_DIR}/src/EnergyPlus/DataGlobals.hh"
"${PROJECT_SOURCE_DIR}/src/EnergyPlus/Data/EnergyPlusData.hh"
"${PROJECT_SOURCE_DIR}/third_party/ObjexxFCL/src/ObjexxFCL/Array.functions.hh"
"${PROJECT_SOURCE_DIR}/third_party/ObjexxFCL/src/ObjexxFCL/Array1D.hh"
"${PROJECT_SOURCE_DIR}/third_party/nlohmann/json.hpp"
)
target_precompile_headers(${NAME}
PUBLIC ${ce_add_target_PCHHEADER_PUBLIC}
PRIVATE ${ce_add_target_PCHHEADER_PRIVATE}
INTERFACE ${ce_add_target_PCHHEADER_INTERFACE}
)
target_precompile_headers(input INTERFACE ${CMAKE_SOURCE_DIR}/src/pch.h)
target_precompile_headers(lagrange_core_pch INTERFACE
# This list should contain files that are used often, ideally by
# at least a third of the compilation units (directly or indirectly).
# C headers
<cmath>
<cstdlib>
# C++ headers
<algorithm>
<chrono>
<functional>
<limits>
<memory>
<numeric>
<sstream>
<string>
<type_traits>
<utility>
# C++ datastructures
<array>
<list>
<map>
<queue>
<unordered_map>
<unordered_set>
<vector>
# Third party libraries
<Eigen/Core>
# Lagrange core
<lagrange/common.h>
<lagrange/Mesh.h>
<lagrange/Logger.h>
<lagrange/utils/assert.h>
<lagrange/utils/range.h>
<lagrange/utils/safe_cast.h>
)
target_precompile_headers(${PROJECT_NAME}_hl INTERFACE "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/${pch_sources}>")