mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-02-04 00:06:50 +00:00
Fix issues building libraries as more than one type with Xcode
Summary: CMake+Xcode doesn't seem to handle targets that only have object sources. This patch works around that limitation by adding a dummy soruce file to any library target that is generated by llvm_add_library when object libraries are generated. Object libraries are generated whenever llvm_add_library is passed more than one library type, which is now the default case for clang static libraries (which generate STATIC and OBJECT libraries). Reviewers: zturner, compnerd, joanlluch Reviewed By: joanlluch Subscribers: joanlluch, xbolva00, mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64300 llvm-svn: 365365
This commit is contained in:
parent
b324c64b6d
commit
7023bdc46f
@ -40,6 +40,12 @@ if ((CMAKE_GENERATOR MATCHES "Visual Studio") AND (CMAKE_GENERATOR_TOOLSET STREQ
|
||||
"host compiler, pass -Thost=x64 on the CMake command line.")
|
||||
endif()
|
||||
|
||||
if (CMAKE_GENERATOR STREQUAL "Xcode" AND NOT CMAKE_OSX_ARCHITECTURES)
|
||||
# Some CMake features like object libraries get confused if you don't
|
||||
# explicitly specify an architecture setting with the Xcode generator.
|
||||
set(CMAKE_OSX_ARCHITECTURES "x86_64")
|
||||
endif()
|
||||
|
||||
project(LLVM
|
||||
VERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}
|
||||
LANGUAGES C CXX ASM)
|
||||
|
@ -433,7 +433,12 @@ function(llvm_add_library name)
|
||||
${ALL_FILES}
|
||||
)
|
||||
llvm_update_compile_flags(${obj_name})
|
||||
set(ALL_FILES "$<TARGET_OBJECTS:${obj_name}>")
|
||||
if(CMAKE_GENERATOR STREQUAL "Xcode")
|
||||
set(DUMMY_FILE ${CMAKE_CURRENT_BINARY_DIR}/Dummy.c)
|
||||
file(WRITE ${DUMMY_FILE} "// This file intentionally empty\n")
|
||||
set_property(SOURCE ${DUMMY_FILE} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wno-empty-translation-unit")
|
||||
endif()
|
||||
set(ALL_FILES "$<TARGET_OBJECTS:${obj_name}>" ${DUMMY_FILE})
|
||||
|
||||
# Do add_dependencies(obj) later due to CMake issue 14747.
|
||||
list(APPEND objlibs ${obj_name})
|
||||
|
Loading…
x
Reference in New Issue
Block a user