CMake: Populate list of required include directories for library targets

PUBLIC items will populate the INTERFACE_INCLUDE_DIRECTORIES property of
<target>. This property is a list of public include directories
requirements for a library.

Targets may populate this property to publish the include directories
required to compile against the headers for the target.
This commit is contained in:
Riyyi
2022-09-28 14:05:02 +02:00
parent 6972128ad2
commit 26cd35d679
3 changed files with 5 additions and 9 deletions
+3 -5
View File
@@ -13,9 +13,7 @@ file(GLOB_RECURSE GAME_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp")
add_executable(${GAME} ${GAME_SOURCES})
target_include_directories(${GAME} PRIVATE
"src"
"${CMAKE_SOURCE_DIR}/src"
"${CMAKE_SOURCE_DIR}/vendor/ruc/src")
"src")
target_link_libraries(${GAME} ${ENGINE})
target_precompile_headers(${GAME} REUSE_FROM ${ENGINE})
@@ -25,5 +23,5 @@ target_precompile_headers(${GAME} REUSE_FROM ${ENGINE})
# Add 'make run' target
add_custom_target(run
COMMAND ${GAME}
WORKING_DIRECTORY ".."
)
WORKING_DIRECTORY "..")
add_dependencies(run ${ENGINE})
+1 -3
View File
@@ -1,14 +1,12 @@
file(GLOB_RECURSE ENGINE_SOURCES "${ENGINE}/*.cpp")
add_library(${ENGINE} ${ENGINE_SOURCES})
target_include_directories(${ENGINE} PRIVATE
target_include_directories(${ENGINE} PUBLIC
"."
"../vendor/entt/src"
"../vendor/glad/include"
"../vendor/glfw/include"
"../vendor/glm"
"../vendor/json/include"
"../vendor/lua"
"../vendor/ruc/src"
"../vendor/sol2/include"
"../vendor/stb")
+1 -1
View File
@@ -18,7 +18,7 @@ list(REMOVE_ITEM LUA "${CMAKE_CURRENT_SOURCE_DIR}/lua/lua/lua.c") # Do not co
set(ENGINE_SOURCES ${GLAD} ${LUA})
add_library(${ENGINE}-dependencies ${ENGINE_SOURCES})
target_include_directories(${ENGINE}-dependencies PRIVATE
target_include_directories(${ENGINE}-dependencies PUBLIC
"glad/include"
"lua")
target_link_libraries(${ENGINE}-dependencies glfw ruc)