Skip to content

Commit db7743d

Browse files
committed
Only set BINDGEN_EXTRA_CLANG_ARGS if required
Prevents having to work around unnecessary rebuils caused by rust-analyzer rust-lang/cargo#7432
1 parent 2b9393f commit db7743d

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

cmake/Rust.cmake

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -167,17 +167,23 @@ function(add_rust_library)
167167
list(APPEND EXTRA_CLANG_ARGS "--sysroot=${TMP_SYSROOT}")
168168
endif()
169169

170-
# Required to have some symbols be exported
171-
# https://github.com/rust-lang/rust-bindgen/issues/751
172-
list(APPEND EXTRA_CLANG_ARGS "-fvisibility=default")
170+
if(EMSCRIPTEN OR LINUX)
171+
# Required to have some symbols be exported
172+
# https://github.com/rust-lang/rust-bindgen/issues/751
173+
list(APPEND EXTRA_CLANG_ARGS "-fvisibility=default")
174+
endif()
175+
176+
if(EXTRA_CLANG_ARGS)
177+
set(BINDGEN_EXTRA_CLANG_ARGS BINDGEN_EXTRA_CLANG_ARGS="${EXTRA_CLANG_ARGS}")
178+
endif()
173179

174180
if(RUST_TARGET_PATH)
175181
list(APPEND RUST_ENVIRONMENT "CARGO_TARGET_DIR=${RUST_TARGET_PATH}")
176182
endif()
177183

178184
add_custom_command(
179185
OUTPUT ${GENERATED_LIB_PATH}
180-
COMMAND ${CMAKE_COMMAND} -E env RUSTFLAGS="${RUST_FLAGS}" BINDGEN_EXTRA_CLANG_ARGS="${EXTRA_CLANG_ARGS}" ${RUST_ENVIRONMENT} ${RUST_BUILD_SCRIPT} ${CARGO_EXE} ${RUST_CARGO_TOOLCHAIN} rustc ${RUST_CARGO_UNSTABLE_FLAGS} ${RUST_FEATURES_ARG} ${RUST_CRATE_TYPE_ARG} ${RUST_TARGET_ARG} ${RUST_CARGO_FLAGS}
186+
COMMAND ${CMAKE_COMMAND} -E env RUSTFLAGS="${RUST_FLAGS}" ${BINDGEN_EXTRA_CLANG_ARGS} ${RUST_ENVIRONMENT} ${RUST_BUILD_SCRIPT} ${CARGO_EXE} ${RUST_CARGO_TOOLCHAIN} rustc ${RUST_CARGO_UNSTABLE_FLAGS} ${RUST_FEATURES_ARG} ${RUST_CRATE_TYPE_ARG} ${RUST_TARGET_ARG} ${RUST_CARGO_FLAGS}
181187
WORKING_DIRECTORY ${RUST_PROJECT_PATH}
182188
DEPENDS ${RUST_SOURCES} ${RUST_DEPENDS}
183189
USES_TERMINAL

0 commit comments

Comments
 (0)