Skip to content

Commit 1a1dda5

Browse files
committed
[FIXUP] Evaluate flags set in depends _after_ config-specific flags
1 parent 482e844 commit 1a1dda5

File tree

2 files changed

+20
-22
lines changed

2 files changed

+20
-22
lines changed

CMakeLists.txt

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,13 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
153153
try_append_linker_flag(core "-Wl,-headerpad_max_install_names")
154154
endif()
155155

156-
if(CMAKE_CROSSCOMPILING AND DEPENDS_ALLOW_HOST_PACKAGES)
157-
list(APPEND CMAKE_FIND_ROOT_PATH "${CMAKE_SYSTEM_PREFIX_PATH}")
156+
if(CMAKE_CROSSCOMPILING)
157+
target_compile_definitions(core INTERFACE ${DEPENDS_COMPILE_DEFINITIONS})
158+
target_compile_options(core INTERFACE "$<$<COMPILE_LANGUAGE:C>:${DEPENDS_C_COMPILER_FLAGS}>")
159+
target_compile_options(core INTERFACE "$<$<COMPILE_LANGUAGE:CXX>:${DEPENDS_CXX_COMPILER_FLAGS}>")
160+
if(DEPENDS_ALLOW_HOST_PACKAGES)
161+
list(APPEND CMAKE_FIND_ROOT_PATH "${CMAKE_SYSTEM_PREFIX_PATH}")
162+
endif()
158163
endif()
159164

160165
include(AddThreadsIfNeeded)
@@ -229,9 +234,13 @@ get_directory_property(definitions COMPILE_DEFINITIONS)
229234
string(REPLACE ";" " " definitions "${definitions}")
230235
message("Preprocessor defined macros ........... ${definitions}")
231236
message("C compiler ............................ ${CMAKE_C_COMPILER}")
232-
message("CFLAGS ................................ ${CMAKE_C_FLAGS}")
237+
list(JOIN DEPENDS_C_COMPILER_FLAGS " " depends_c_flags)
238+
string(STRIP "${CMAKE_C_FLAGS} ${depends_c_flags}" combined_c_flags)
239+
message("CFLAGS ................................ ${combined_c_flags}")
233240
message("C++ compiler .......................... ${CMAKE_CXX_COMPILER}")
234-
message("CXXFLAGS .............................. ${CMAKE_CXX_FLAGS}")
241+
list(JOIN DEPENDS_CXX_COMPILER_FLAGS " " depends_cxx_flags)
242+
string(STRIP "${CMAKE_CXX_FLAGS} ${depends_cxx_flags}" combined_cxx_flags)
243+
message("CXXFLAGS .............................. ${combined_cxx_flags}")
235244
get_target_property(common_compile_options core INTERFACE_COMPILE_OPTIONS)
236245
if(common_compile_options)
237246
list(JOIN common_compile_options " " common_compile_options)

depends/toolchain.cmake.in

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,10 @@ if(NOT CMAKE_C_COMPILER)
3737
if(CMAKE_VERSION VERSION_LESS 3.19)
3838
set(DEPENDS_C_COMPILER_FLAGS ${CMAKE_C_COMPILER})
3939
list(REMOVE_AT DEPENDS_C_COMPILER_FLAGS 0)
40-
string(REPLACE ";" " " DEPENDS_C_COMPILER_FLAGS "${DEPENDS_C_COMPILER_FLAGS}")
4140
list(GET CMAKE_C_COMPILER 0 CMAKE_C_COMPILER)
4241
endif()
42+
list(APPEND DEPENDS_C_COMPILER_FLAGS @CFLAGS@)
4343
endif()
44-
set(CMAKE_C_FLAGS_INIT "${DEPENDS_C_COMPILER_FLAGS} @CPPFLAGS@ @CFLAGS@")
4544

4645
if(NOT CMAKE_CXX_COMPILER)
4746
set(DEPENDS_CXX_COMPILER_WITH_LAUNCHER @CXX@)
@@ -52,26 +51,16 @@ if(NOT CMAKE_CXX_COMPILER)
5251
if(CMAKE_VERSION VERSION_LESS 3.19)
5352
set(DEPENDS_CXX_COMPILER_FLAGS ${CMAKE_CXX_COMPILER})
5453
list(REMOVE_AT DEPENDS_CXX_COMPILER_FLAGS 0)
55-
string(REPLACE ";" " " DEPENDS_CXX_COMPILER_FLAGS "${DEPENDS_CXX_COMPILER_FLAGS}")
5654
list(GET CMAKE_CXX_COMPILER 0 CMAKE_CXX_COMPILER)
5755
endif()
58-
endif()
59-
set(CMAKE_CXX_FLAGS_INIT "${DEPENDS_CXX_COMPILER_FLAGS} @CPPFLAGS@ @CXXFLAGS@")
56+
list(APPEND DEPENDS_CXX_COMPILER_FLAGS @CXXFLAGS@)
6057

61-
if(NOT CMAKE_OBJCXX_COMPILER)
62-
set(DEPENDS_OBJCXX_COMPILER_WITH_LAUNCHER @CXX@)
63-
split_compiler_launcher(DEPENDS_OBJCXX_COMPILER_WITH_LAUNCHER CMAKE_OBJCXX_COMPILER_LAUNCHER CMAKE_OBJCXX_COMPILER)
64-
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.21)
65-
set(CMAKE_OBJCXX_LINKER_LAUNCHER ${CMAKE_OBJCXX_COMPILER_LAUNCHER})
66-
endif()
67-
if(CMAKE_VERSION VERSION_LESS 3.19)
68-
set(DEPENDS_OBJCXX_COMPILER_FLAGS ${CMAKE_OBJCXX_COMPILER})
69-
list(REMOVE_AT DEPENDS_OBJCXX_COMPILER_FLAGS 0)
70-
string(REPLACE ";" " " DEPENDS_OBJCXX_COMPILER_FLAGS "${DEPENDS_OBJCXX_COMPILER_FLAGS}")
71-
list(GET CMAKE_OBJCXX_COMPILER 0 CMAKE_OBJCXX_COMPILER)
72-
endif()
58+
set(CMAKE_OBJCXX_COMPILER ${CMAKE_CXX_COMPILER})
59+
set(CMAKE_OBJCXX_COMPILER_LAUNCHER ${CMAKE_CXX_COMPILER_LAUNCHER})
60+
set(CMAKE_OBJCXX_LINKER_LAUNCHER ${CMAKE_CXX_LINKER_LAUNCHER})
7361
endif()
74-
set(CMAKE_OBJCXX_FLAGS_INIT "${DEPENDS_OBJCXX_COMPILER_FLAGS} @CPPFLAGS@ @CXXFLAGS@")
62+
63+
set(DEPENDS_COMPILE_DEFINITIONS @CPPFLAGS@)
7564

7665
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
7766
set(CMAKE_EXE_LINKER_FLAGS_INIT "-static")

0 commit comments

Comments
 (0)