cmake: use target_compile_options to use -idirafter for khronos headers

This commit is contained in:
Anonymous Maarten 2023-01-07 16:55:32 +01:00 committed by Anonymous Maarten
parent 4d9ee735fd
commit 5555284a70
2 changed files with 16 additions and 3 deletions

View File

@ -301,10 +301,13 @@ target_include_directories(sdl-build-options
)
# Note: The clang toolset for Visual Studio does not support the '-idirafter' option.
if(USE_GCC OR (USE_CLANG AND NOT MSVC_CLANG))
# !!! FIXME: do we _need_ to mess with CMAKE_C_FLAGS here?
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -idirafter \"${SDL3_SOURCE_DIR}/src/video/khronos\"")
if(CMAKE_VERSION VERSION_LESS 3.12)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -idirafter \"${SDL3_SOURCE_DIR}/src/video/khronos\"")
else()
target_compile_options(sdl-global-options INTERFACE "SHELL:-idirafter \"${SDL3_SOURCE_DIR}/src/video/khronos\"")
endif()
else()
target_include_directories(sdl-build-options INTERFACE "${SDL3_SOURCE_DIR}/src/video/khronos")
target_include_directories(sdl-global-options INTERFACE "${SDL3_SOURCE_DIR}/src/video/khronos")
endif()
# All these ENABLED_BY_DEFAULT vars will default to ON if not specified, so

View File

@ -78,10 +78,15 @@ function(listtostr LIST OUTPUT)
# Do not use string(REPLACE ";" " ") here to avoid messing up list entries
set(res)
foreach(ITEM ${${LIST}})
string(SUBSTRING "${ITEM}" 0 6 start)
if(start STREQUAL "SHELL:")
string(SUBSTRING "${ITEM}" 6 -1 ITEM)
endif()
if(ITEM)
set(res "${res} ${LPREFIX}${ITEM}")
endif()
endforeach()
string(STRIP "${res}" res)
set(${OUTPUT} "${res}" PARENT_SCOPE)
endfunction()
@ -96,8 +101,13 @@ function(listtostrrev _LIST _OUTPUT)
# entries
set(res)
foreach(_ITEM ${${_LIST}})
string(SUBSTRING "${_ITEM}" 0 6 start)
if(start STREQUAL "SHELL:")
string(SUBSTRING "${_ITEM}" 6 -1 _ITEM)
endif()
set(res "${res} ${_LPREFIX}${_ITEM}")
endforeach()
string(STRIP "${res}" res)
set($_OUTPUT} "${res}" PARENT_SCOPE)
endfunction()