Splitting link options from link libraries in cmake. (#4309)
This was causing issues where flags like /LTCG were getting interpreted
as libraries that couldn't be found.
diff --git a/build_tools/cmake/external_cc_library.cmake b/build_tools/cmake/external_cc_library.cmake
index d9cd38e..88c0f82 100644
--- a/build_tools/cmake/external_cc_library.cmake
+++ b/build_tools/cmake/external_cc_library.cmake
@@ -130,13 +130,15 @@
${_RULE_COPTS}
${IREE_DEFAULT_COPTS}
)
- target_link_libraries(${_NAME}
- PUBLIC
- ${_RULE_DEPS}
+ target_link_options(${_NAME}
PRIVATE
${IREE_DEFAULT_LINKOPTS}
${_RULE_LINKOPTS}
)
+ target_link_libraries(${_NAME}
+ PUBLIC
+ ${_RULE_DEPS}
+ )
target_compile_definitions(${_NAME}
PUBLIC
${_RULE_DEFINES}
@@ -169,10 +171,13 @@
${IREE_DEFAULT_COPTS}
${_RULE_COPTS}
)
- target_link_libraries(${_NAME}
+ target_link_options(${_NAME}
INTERFACE
${IREE_DEFAULT_LINKOPTS}
${_RULE_LINKOPTS}
+ )
+ target_link_libraries(${_NAME}
+ INTERFACE
${_RULE_DEPS}
)
iree_add_data_dependencies(NAME ${_NAME} DATA ${_RULE_DATA})
diff --git a/build_tools/cmake/iree_cc_library.cmake b/build_tools/cmake/iree_cc_library.cmake
index fc7cb5d..41738dc 100644
--- a/build_tools/cmake/iree_cc_library.cmake
+++ b/build_tools/cmake/iree_cc_library.cmake
@@ -128,14 +128,15 @@
${IREE_DEFAULT_COPTS}
${_RULE_COPTS}
)
-
- target_link_libraries(${_NAME}
- PUBLIC
- ${_RULE_DEPS}
+ target_link_options(${_NAME}
PRIVATE
${IREE_DEFAULT_LINKOPTS}
${_RULE_LINKOPTS}
)
+ target_link_libraries(${_NAME}
+ PUBLIC
+ ${_RULE_DEPS}
+ )
iree_add_data_dependencies(NAME ${_NAME} DATA ${_RULE_DATA})
target_compile_definitions(${_NAME}
@@ -168,12 +169,15 @@
${IREE_DEFAULT_COPTS}
${_RULE_COPTS}
)
- target_link_libraries(${_NAME}
+ target_link_options(${_NAME}
INTERFACE
${IREE_DEFAULT_LINKOPTS}
- ${_RULE_DEPS}
${_RULE_LINKOPTS}
)
+ target_link_libraries(${_NAME}
+ INTERFACE
+ ${_RULE_DEPS}
+ )
iree_add_data_dependencies(NAME ${_NAME} DATA ${_RULE_DATA})
target_compile_definitions(${_NAME}
INTERFACE