@@ -42,13 +42,20 @@ endif ()
4242
4343set (CMAKE_POSITION_INDEPENDENT_CODE ON )
4444
45+ file (GENERATE OUTPUT ${ark_SOURCE_DIR} /pch/pch.cpp CONTENT "" )
46+ add_library (PCH OBJECT ${ark_SOURCE_DIR} /pch/pch.cpp)
47+ target_precompile_headers(PCH PRIVATE ${ark_SOURCE_DIR} /pch/pch.hpp)
48+ target_include_directories (PCH PRIVATE ${ark_SOURCE_DIR} /pch)
49+ target_compile_features (PCH PRIVATE cxx_std_20)
50+
4551# files needed for the library ArkReactor
4652file (GLOB_RECURSE SOURCE_FILES
4753 ${ark_SOURCE_DIR} /src/arkreactor/*.cpp
4854 ${ark_SOURCE_DIR} /lib/fmt/src/format.cc)
4955
5056add_library (ArkReactor SHARED ${SOURCE_FILES} )
5157enable_lto(ArkReactor)
58+ target_precompile_headers(ArkReactor REUSE_FROM PCH)
5259target_include_directories (ArkReactor
5360 PUBLIC
5461 ${ark_SOURCE_DIR} /include )
@@ -192,6 +199,7 @@ if (ARK_TESTS)
192199 ${ark_SOURCE_DIR} /src/arkscript/JsonCompiler.cpp
193200 ${ark_SOURCE_DIR} /src/arkscript/REPL/Utils.cpp)
194201 add_executable (unittests ${SOURCES} )
202+ target_precompile_headers(unittests REUSE_FROM PCH)
195203 target_include_directories (unittests PUBLIC ${ark_SOURCE_DIR} /tests/unittests)
196204
197205 target_include_directories (unittests SYSTEM PUBLIC ${ark_SOURCE_DIR} /lib/dtl/dtl)
@@ -261,6 +269,7 @@ if (ARK_BUILD_EXE)
261269
262270 add_subdirectory ("${ark_SOURCE_DIR} /lib/clipp" EXCLUDE_FROM_ALL )
263271
272+ target_precompile_headers(arkscript REUSE_FROM PCH)
264273 target_include_directories (arkscript SYSTEM PUBLIC "${ark_SOURCE_DIR} /lib/clipp/include" )
265274 target_link_libraries (arkscript PUBLIC ArkReactor replxx clipp)
266275 target_compile_features (arkscript PRIVATE cxx_std_20)
0 commit comments