mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
Revert "[llvm] Added support for stand-alone cmake object libraries."
This reverts commit 695c7d6313d74dc02222f6497d4c4985d67f433f. Breaks windows (e.g. http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/16497) Likely to cause problems with XCode.
This commit is contained in:
parent
9cf60f1a4c
commit
982fab44f8
@ -390,13 +390,8 @@ endfunction(set_windows_version_resource_properties)
|
||||
# SHARED;STATIC
|
||||
# STATIC by default w/o BUILD_SHARED_LIBS.
|
||||
# SHARED by default w/ BUILD_SHARED_LIBS.
|
||||
# OBJECT_ONLY
|
||||
# builds an OBJECT target, irrespective of BUILD_SHARED_LIBS.
|
||||
# Cannot be mixed with SHARED, STATIC, or OBJECT.
|
||||
# OBJECT
|
||||
# Also create an OBJECT library target. Default if STATIC && SHARED.
|
||||
# The OBJECT target will be named obj.${name} and will have an empty link
|
||||
# interface.
|
||||
# MODULE
|
||||
# Target ${name} might not be created on unsupported platforms.
|
||||
# Check with "if(TARGET ${name})".
|
||||
@ -426,7 +421,7 @@ endfunction(set_windows_version_resource_properties)
|
||||
# )
|
||||
function(llvm_add_library name)
|
||||
cmake_parse_arguments(ARG
|
||||
"MODULE;SHARED;STATIC;OBJECT;OBJECT_ONLY;DISABLE_LLVM_LINK_LLVM_DYLIB;SONAME;NO_INSTALL_RPATH;COMPONENT_LIB"
|
||||
"MODULE;SHARED;STATIC;OBJECT;DISABLE_LLVM_LINK_LLVM_DYLIB;SONAME;NO_INSTALL_RPATH;COMPONENT_LIB"
|
||||
"OUTPUT_NAME;PLUGIN_TOOL;ENTITLEMENTS;BUNDLE_PATH"
|
||||
"ADDITIONAL_HEADERS;DEPENDS;LINK_COMPONENTS;LINK_LIBS;OBJLIBS"
|
||||
${ARGN})
|
||||
@ -441,10 +436,6 @@ function(llvm_add_library name)
|
||||
llvm_process_sources(ALL_FILES ${ARG_UNPARSED_ARGUMENTS} ${ARG_ADDITIONAL_HEADERS})
|
||||
endif()
|
||||
|
||||
if ((ARG_STATIC OR ARG_SHARED OR ARG_OBJECT) AND ARG_OBJECT_ONLY)
|
||||
message(ERROR "OBJECT_ONLY should appear alone, without STATIC|SHARED|OBJECT")
|
||||
endif()
|
||||
|
||||
if(ARG_MODULE)
|
||||
if(ARG_SHARED OR ARG_STATIC)
|
||||
message(WARNING "MODULE with SHARED|STATIC doesn't make sense.")
|
||||
@ -461,12 +452,12 @@ function(llvm_add_library name)
|
||||
if(BUILD_SHARED_LIBS AND NOT ARG_STATIC)
|
||||
set(ARG_SHARED TRUE)
|
||||
endif()
|
||||
if(NOT ARG_SHARED AND NOT ARG_OBJECT_ONLY)
|
||||
if(NOT ARG_SHARED)
|
||||
set(ARG_STATIC TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Generate the extra objlib
|
||||
# Generate objlib
|
||||
if((ARG_SHARED AND ARG_STATIC) OR ARG_OBJECT)
|
||||
# Generate an obj library for both targets.
|
||||
set(obj_name "obj.${name}")
|
||||
@ -532,10 +523,8 @@ function(llvm_add_library name)
|
||||
elseif(ARG_SHARED)
|
||||
add_windows_version_resource_file(ALL_FILES ${ALL_FILES})
|
||||
add_library(${name} SHARED ${ALL_FILES})
|
||||
elseif(ARG_STATIC)
|
||||
add_library(${name} STATIC ${ALL_FILES})
|
||||
else()
|
||||
add_library(${name} OBJECT ${ALL_FILES})
|
||||
add_library(${name} STATIC ${ALL_FILES})
|
||||
endif()
|
||||
|
||||
if(ARG_COMPONENT_LIB)
|
||||
@ -646,11 +635,11 @@ function(llvm_add_library name)
|
||||
get_property(lib_deps GLOBAL PROPERTY LLVMBUILD_LIB_DEPS_${name})
|
||||
endif()
|
||||
|
||||
if(ARG_SHARED)
|
||||
if(ARG_STATIC)
|
||||
set(libtype PUBLIC)
|
||||
else()
|
||||
# We can use PRIVATE since SO knows its dependent libs.
|
||||
set(libtype PRIVATE)
|
||||
else()
|
||||
set(libtype PUBLIC)
|
||||
endif()
|
||||
|
||||
target_link_libraries(${name} ${libtype}
|
||||
@ -686,27 +675,6 @@ function(llvm_add_library name)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# Add a target which is logically and deployment-wise part of another one
|
||||
# (owner), but - perhaps because it has optional build dependencies - may be
|
||||
# built separately.
|
||||
# The owner consumes it via target_link_libraries (or equivalent syntax).
|
||||
#
|
||||
# PUBLIC creates an OBJECT library, so linking it in the owner translates to
|
||||
# linking the object files in this target as if they were built by the owner.
|
||||
#
|
||||
# PRIVATE creates a STATIC library, so linking it would drop objects that are
|
||||
# not referenced.
|
||||
macro (add_llvm_internal_library name)
|
||||
cmake_parse_arguments(ARG "PUBLIC;PRIVATE" "" "" ${ARGN})
|
||||
if (ARG_PUBLIC)
|
||||
add_llvm_library(${name} OBJECT_ONLY DISABLE_LLVM_LINK_LLVM_DYLIB
|
||||
${ARG_UNPARSED_ARGUMENTS})
|
||||
else()
|
||||
add_llvm_library(${name} STATIC DISABLE_LLVM_LINK_LLVM_DYLIB
|
||||
${ARG_UNPARSED_ARGUMENTS})
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
function(add_llvm_install_targets target)
|
||||
cmake_parse_arguments(ARG "" "COMPONENT;PREFIX;SYMLINK" "DEPENDS" ${ARGN})
|
||||
if(ARG_COMPONENT)
|
||||
|
@ -108,7 +108,4 @@ add_llvm_component_library(LLVMAnalysis
|
||||
|
||||
DEPENDS
|
||||
intrinsics_gen
|
||||
|
||||
LINK_LIBS
|
||||
PRIVATE LLVMMLPolicies
|
||||
)
|
||||
|
@ -14,6 +14,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = ML
|
||||
|
||||
[component_0]
|
||||
type = Library
|
||||
name = Analysis
|
||||
|
@ -1,6 +1,4 @@
|
||||
set(BUILD_SHARED_LIBS OFF)
|
||||
|
||||
add_llvm_internal_library(LLVMMLPolicies PUBLIC
|
||||
add_llvm_component_library(LLVMMLPolicies
|
||||
InlineFeaturesAnalysis.cpp
|
||||
|
||||
DEPENDS
|
||||
|
21
lib/Analysis/ML/LLVMBuild.txt
Normal file
21
lib/Analysis/ML/LLVMBuild.txt
Normal file
@ -0,0 +1,21 @@
|
||||
;===- ./lib/Analysis/ML/LLVMBuild.txt --------------------------*- Conf -*--===;
|
||||
;
|
||||
; Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
; See https://llvm.org/LICENSE.txt for license information.
|
||||
; SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
;
|
||||
; This is an LLVMBuild description file for the components in this subdirectory.
|
||||
;
|
||||
; For more information on the LLVMBuild system, please see:
|
||||
;
|
||||
; http://llvm.org/docs/LLVMBuild.html
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[component_0]
|
||||
type = Library
|
||||
name = MLPolicies
|
||||
parent = Analysis
|
||||
required_libraries = Core Support
|
@ -18,4 +18,4 @@
|
||||
type = Library
|
||||
name = Passes
|
||||
parent = Libraries
|
||||
required_libraries = AggressiveInstCombine Analysis CodeGen Core Coroutines IPO InstCombine Scalar Support Target TransformUtils Vectorize Instrumentation
|
||||
required_libraries = AggressiveInstCombine Analysis MLPolicies CodeGen Core Coroutines IPO InstCombine Scalar Support Target TransformUtils Vectorize Instrumentation
|
||||
|
@ -2,6 +2,7 @@ set(LLVM_LINK_COMPONENTS
|
||||
Analysis
|
||||
AsmParser
|
||||
Core
|
||||
MLPolicies
|
||||
Support
|
||||
TransformUtils
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user