Skip to content

Commit cac4542

Browse files
committed
[FIXUP] Evaluate flags set in depends _after_ config-specific flags
1 parent 4940116 commit cac4542

File tree

2 files changed

+20
-22
lines changed

2 files changed

+20
-22
lines changed

Diff for: CMakeLists.txt

+13-4
Original file line numberDiff line numberDiff line change
@@ -155,8 +155,13 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
155155
try_append_linker_flag(core "-Wl,-headerpad_max_install_names")
156156
endif()
157157

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

162167
include(AddThreadsIfNeeded)
@@ -231,9 +236,13 @@ get_directory_property(definitions COMPILE_DEFINITIONS)
231236
string(REPLACE ";" " " definitions "${definitions}")
232237
message("Preprocessor defined macros ........... ${definitions}")
233238
message("C compiler ............................ ${CMAKE_C_COMPILER}")
234-
message("CFLAGS ................................ ${CMAKE_C_FLAGS}")
239+
list(JOIN DEPENDS_C_COMPILER_FLAGS " " depends_c_flags)
240+
string(STRIP "${CMAKE_C_FLAGS} ${depends_c_flags}" combined_c_flags)
241+
message("CFLAGS ................................ ${combined_c_flags}")
235242
message("C++ compiler .......................... ${CMAKE_CXX_COMPILER}")
236-
message("CXXFLAGS .............................. ${CMAKE_CXX_FLAGS}")
243+
list(JOIN DEPENDS_CXX_COMPILER_FLAGS " " depends_cxx_flags)
244+
string(STRIP "${CMAKE_CXX_FLAGS} ${depends_cxx_flags}" combined_cxx_flags)
245+
message("CXXFLAGS .............................. ${combined_cxx_flags}")
237246
get_target_property(common_compile_options core INTERFACE_COMPILE_OPTIONS)
238247
if(common_compile_options)
239248
list(JOIN common_compile_options " " common_compile_options)

Diff for: depends/toolchain.cmake.in

+7-18
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)