1
0
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:
Mircea Trofin 2020-06-15 12:14:51 -07:00
parent 9cf60f1a4c
commit 982fab44f8
7 changed files with 34 additions and 46 deletions

View File

@ -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)

View File

@ -108,7 +108,4 @@ add_llvm_component_library(LLVMAnalysis
DEPENDS
intrinsics_gen
LINK_LIBS
PRIVATE LLVMMLPolicies
)

View File

@ -14,6 +14,9 @@
;
;===------------------------------------------------------------------------===;
[common]
subdirectories = ML
[component_0]
type = Library
name = Analysis

View File

@ -1,6 +1,4 @@
set(BUILD_SHARED_LIBS OFF)
add_llvm_internal_library(LLVMMLPolicies PUBLIC
add_llvm_component_library(LLVMMLPolicies
InlineFeaturesAnalysis.cpp
DEPENDS

View 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

View File

@ -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

View File

@ -2,6 +2,7 @@ set(LLVM_LINK_COMPONENTS
Analysis
AsmParser
Core
MLPolicies
Support
TransformUtils
)