How to generate precompiled headers for MSVC using Cmake

Viewed 742

I'm trying to generate precompiled headers to my project using target_precompiled_headers(). I have read this answer explaining the function, but I fail to make it work. The header isn't added to .cpp files and it generates four .hxx files.

My code:

  • #CMakeLists.txt
# Collect files
set(ENGINE_WINDOW
    # window
    "src/window/window.h"
    "src/window/window.cpp"
)

# Set filters
source_group("window"   FILES ${ENGINE_WINDOW})

# Build static library
add_library(engine STATIC
    ${ENGINE_WINDOW}
)

# Precompile headers
target_precompile_headers(engine PRIVATE 
    <iostream>
)

# Specify include directories
target_include_directories(engine
    PUBLIC ${PROJECT_SOURCE_DIR}/vendor/glad/include
)

# Find OpenGL
find_package(OpenGL)

# Link libraries to engine
target_link_libraries(engine
    ${OPENGL_gl_LIBRARY}
    glad
    glfw
)
  • Generated cmake_pch.hxx (x4)
/* generated by CMake */

#pragma system_header
#ifdef __cplusplus
#include <iostream>
#endif // __cplusplus

  • Generate cmake_pch.cpp (which is empty)
/* generated by CMake */

Output of CMake generated precompiled headers

0 Answers
Related