[llvm] 29e5722 - Revert "[llvm] Added support for stand-alone cmake object libraries."
Mircea Trofin via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 15 12:15:55 PDT 2020
Author: Mircea Trofin
Date: 2020-06-15T12:15:39-07:00
New Revision: 29e57229497711a3a294f437b59afa6ddc36a3d8
URL: https://github.com/llvm/llvm-project/commit/29e57229497711a3a294f437b59afa6ddc36a3d8
DIFF: https://github.com/llvm/llvm-project/commit/29e57229497711a3a294f437b59afa6ddc36a3d8.diff
LOG: 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.
Added:
llvm/lib/Analysis/ML/LLVMBuild.txt
Modified:
llvm/cmake/modules/AddLLVM.cmake
llvm/lib/Analysis/CMakeLists.txt
llvm/lib/Analysis/LLVMBuild.txt
llvm/lib/Analysis/ML/CMakeLists.txt
llvm/lib/Passes/LLVMBuild.txt
llvm/unittests/Analysis/ML/CMakeLists.txt
Removed:
################################################################################
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
index 959e0daf718d..e25c72f3cae3 100644
--- a/llvm/cmake/modules/AddLLVM.cmake
+++ b/llvm/cmake/modules/AddLLVM.cmake
@@ -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)
diff --git a/llvm/lib/Analysis/CMakeLists.txt b/llvm/lib/Analysis/CMakeLists.txt
index cd9a68820860..faf0a3186fd6 100644
--- a/llvm/lib/Analysis/CMakeLists.txt
+++ b/llvm/lib/Analysis/CMakeLists.txt
@@ -108,7 +108,4 @@ add_llvm_component_library(LLVMAnalysis
DEPENDS
intrinsics_gen
-
- LINK_LIBS
- PRIVATE LLVMMLPolicies
)
diff --git a/llvm/lib/Analysis/LLVMBuild.txt b/llvm/lib/Analysis/LLVMBuild.txt
index d73b55f037fa..ef52c41da8a6 100644
--- a/llvm/lib/Analysis/LLVMBuild.txt
+++ b/llvm/lib/Analysis/LLVMBuild.txt
@@ -14,6 +14,9 @@
;
;===------------------------------------------------------------------------===;
+[common]
+subdirectories = ML
+
[component_0]
type = Library
name = Analysis
diff --git a/llvm/lib/Analysis/ML/CMakeLists.txt b/llvm/lib/Analysis/ML/CMakeLists.txt
index cb49954acc7c..28a5f98b793b 100644
--- a/llvm/lib/Analysis/ML/CMakeLists.txt
+++ b/llvm/lib/Analysis/ML/CMakeLists.txt
@@ -1,6 +1,4 @@
-set(BUILD_SHARED_LIBS OFF)
-
-add_llvm_internal_library(LLVMMLPolicies PUBLIC
+add_llvm_component_library(LLVMMLPolicies
InlineFeaturesAnalysis.cpp
DEPENDS
diff --git a/llvm/lib/Analysis/ML/LLVMBuild.txt b/llvm/lib/Analysis/ML/LLVMBuild.txt
new file mode 100644
index 000000000000..a0bb919bb411
--- /dev/null
+++ b/llvm/lib/Analysis/ML/LLVMBuild.txt
@@ -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
diff --git a/llvm/lib/Passes/LLVMBuild.txt b/llvm/lib/Passes/LLVMBuild.txt
index 438fc5c7c2d4..14586b640849 100644
--- a/llvm/lib/Passes/LLVMBuild.txt
+++ b/llvm/lib/Passes/LLVMBuild.txt
@@ -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
diff --git a/llvm/unittests/Analysis/ML/CMakeLists.txt b/llvm/unittests/Analysis/ML/CMakeLists.txt
index 2cd6dbe4e94e..8d1c90312ad0 100644
--- a/llvm/unittests/Analysis/ML/CMakeLists.txt
+++ b/llvm/unittests/Analysis/ML/CMakeLists.txt
@@ -2,6 +2,7 @@ set(LLVM_LINK_COMPONENTS
Analysis
AsmParser
Core
+ MLPolicies
Support
TransformUtils
)
More information about the llvm-commits
mailing list