Split out test executables into their own export file
This commit is contained in:
parent
f07760fd8f
commit
bab8b9476f
@ -0,0 +1,65 @@
|
||||
From 9d496e978f59e153bb76e92229d5a524d92dee04 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Stellard <tstellar@redhat.com>
|
||||
Date: Tue, 10 Sep 2019 13:33:48 -0700
|
||||
Subject: [PATCH] CMake: Split test binary exports into their own export file
|
||||
|
||||
---
|
||||
llvm/cmake/modules/AddLLVM.cmake | 7 ++++++-
|
||||
llvm/cmake/modules/CMakeLists.txt | 3 +++
|
||||
llvm/cmake/modules/LLVMConfig.cmake.in | 1 +
|
||||
3 files changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
|
||||
index 200fc45..9eec7a7 100644
|
||||
--- a/llvm/cmake/modules/AddLLVM.cmake
|
||||
+++ b/llvm/cmake/modules/AddLLVM.cmake
|
||||
@@ -953,7 +953,12 @@ macro(add_llvm_utility name)
|
||||
set(export_to_llvmexports)
|
||||
if (${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
|
||||
NOT LLVM_DISTRIBUTION_COMPONENTS)
|
||||
- set(export_to_llvmexports EXPORT LLVMExports)
|
||||
+ if (${name} STREQUAL "not" OR ${name} STREQUAL "count" OR
|
||||
+ ${name} STREQUAL "yaml-bench" OR ${name} STREQUAL "lli-child-target")
|
||||
+ set(export_to_llvmexports EXPORT LLVMTestExports)
|
||||
+ else()
|
||||
+ set(export_to_llvmexports EXPORT LLVMExports)
|
||||
+ endif()
|
||||
set_property(GLOBAL PROPERTY LLVM_HAS_EXPORTS True)
|
||||
endif()
|
||||
|
||||
diff --git a/llvm/cmake/modules/CMakeLists.txt b/llvm/cmake/modules/CMakeLists.txt
|
||||
index dc982d2..c861f45 100644
|
||||
--- a/llvm/cmake/modules/CMakeLists.txt
|
||||
+++ b/llvm/cmake/modules/CMakeLists.txt
|
||||
@@ -106,6 +106,7 @@ set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin")
|
||||
set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake")
|
||||
set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS}")
|
||||
set(LLVM_CONFIG_STATIC_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMStaticExports.cmake")
|
||||
+set(LLVM_CONFIG_TEST_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMTestExports.cmake")
|
||||
configure_file(
|
||||
LLVMConfig.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/LLVMConfig.cmake
|
||||
@@ -124,6 +125,8 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
|
||||
COMPONENT cmake-exports)
|
||||
install(EXPORT LLVMStaticExports DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}
|
||||
COMPONENT cmake-exports)
|
||||
+ install(EXPORT LLVMTestExports DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}
|
||||
+ COMPONENT cmake-exports)
|
||||
endif()
|
||||
|
||||
install(FILES
|
||||
diff --git a/llvm/cmake/modules/LLVMConfig.cmake.in b/llvm/cmake/modules/LLVMConfig.cmake.in
|
||||
index 6ef54a0..d81b09a 100644
|
||||
--- a/llvm/cmake/modules/LLVMConfig.cmake.in
|
||||
+++ b/llvm/cmake/modules/LLVMConfig.cmake.in
|
||||
@@ -91,6 +91,7 @@ if(NOT TARGET LLVMSupport)
|
||||
@llvm_config_include_buildtree_only_exports@
|
||||
|
||||
include("@LLVM_CONFIG_STATIC_EXPORTS_FILE@" OPTIONAL)
|
||||
+ include("@LLVM_CONFIG_TEST_EXPORTS_FILE@" OPTIONAL)
|
||||
endif()
|
||||
|
||||
# By creating intrinsics_gen here, subprojects that depend on LLVM's
|
||||
--
|
||||
1.8.3.1
|
||||
|
10
llvm.spec
10
llvm.spec
@ -14,7 +14,7 @@
|
||||
%global min_ver 0
|
||||
%global patch_ver 0
|
||||
%global rc_ver 3
|
||||
%global baserelease 0.3
|
||||
%global baserelease 0.4
|
||||
|
||||
|
||||
%if %{with compat_build}
|
||||
@ -55,6 +55,7 @@ Patch0: 0001-Filter-out-cxxflags-not-supported-by-clang.patch
|
||||
# of gold.
|
||||
Patch1: 0001-Pass-target-to-gold-linker-to-avoid-faliures-on-i686.patch
|
||||
Patch2: 0001-CMake-Split-static-library-exports-into-their-own-ex.patch
|
||||
Patch3: 0001-CMake-Split-test-binary-exports-into-their-own-expor.patch
|
||||
|
||||
BuildRequires: gcc
|
||||
BuildRequires: gcc-c++
|
||||
@ -251,7 +252,7 @@ ln -s llvm-config.1 %{buildroot}%{_mandir}/man1/llvm-config-%{__isa_bits}.1
|
||||
mv %{buildroot}%{_mandir}/man1/tblgen.1 %{buildroot}%{_mandir}/man1/llvm-tblgen.1
|
||||
|
||||
# Install binaries needed for lit tests
|
||||
%global test_binaries FileCheck count lli-child-target llvm-PerfectShuffle llvm-isel-fuzzer llvm-opt-fuzzer not yaml-bench
|
||||
%global test_binaries llvm-isel-fuzzer llvm-opt-fuzzer
|
||||
|
||||
for f in %{test_binaries}
|
||||
do
|
||||
@ -422,6 +423,7 @@ fi
|
||||
%{_libdir}/libLLVM.so
|
||||
%{_libdir}/cmake/llvm
|
||||
%exclude %{_libdir}/cmake/llvm/LLVMStaticExports.cmake
|
||||
%exclude %{_libdir}/cmake/llvm/LLVMTestExports.cmake
|
||||
%else
|
||||
%{_bindir}/llvm-config%{exec_suffix}-%{__isa_bits}
|
||||
%{pkg_bindir}/llvm-config
|
||||
@ -463,6 +465,7 @@ fi
|
||||
%{_bindir}/llvm-opt-fuzzer
|
||||
%{_libdir}/BugpointPasses.so
|
||||
%{_libdir}/LLVMHello.so
|
||||
%{_libdir}/cmake/llvm/LLVMTestExports.cmake
|
||||
|
||||
%files googletest
|
||||
%{_datadir}/llvm/src/utils
|
||||
@ -471,6 +474,9 @@ fi
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Tue Sep 10 2019 Tom Stellard <tstellar@redhat.com> - 9.0.0-0.4.rc3
|
||||
- Split out test executables into their own export file
|
||||
|
||||
* Fri Sep 06 2019 Tom Stellard <tstellar@redhat.com> - 9.0.0-0.3.rc3
|
||||
- Fix patch for splitting out static library exports
|
||||
|
||||
|
3
tests/llvm-devel-cmake/CMakeLists.txt
Normal file
3
tests/llvm-devel-cmake/CMakeLists.txt
Normal file
@ -0,0 +1,3 @@
|
||||
cmake_minimum_required(VERSION 3.4.3)
|
||||
|
||||
find_package(LLVM)
|
16
tests/llvm-devel-cmake/runtest.sh
Executable file
16
tests/llvm-devel-cmake/runtest.sh
Executable file
@ -0,0 +1,16 @@
|
||||
set -ex
|
||||
|
||||
# This test is meant to ensure that the cmake files in llvm-devel work
|
||||
# when only the packages it depends on are installed.
|
||||
|
||||
ARCH=`rpm --eval '%_arch'`
|
||||
|
||||
llvm_devel_num_deps=`dnf repoquery --nvr --requires --resolve llvm-devel.$ARCH | grep '^llvm' | wc -l`
|
||||
|
||||
llvm_num_sub_packages_installed=`dnf list installed | grep '^llvm' | wc -l`
|
||||
|
||||
# Verify that only llvm-devel dependencies are installed.
|
||||
test `expr $llvm_devel_num_deps + 1` -eq $llvm_num_sub_packages_installed
|
||||
|
||||
# Verify that cmake files can me used without errors.
|
||||
cmake -G Ninja .
|
28
tests/testsllvm-devel.yml
Normal file
28
tests/testsllvm-devel.yml
Normal file
@ -0,0 +1,28 @@
|
||||
- hosts: localhost
|
||||
pre_tasks:
|
||||
# Make sure we uninstall all sub-packages, so we can test that the cmake files
|
||||
# in llvm-devel are useable when only llvm-devel is installed.
|
||||
- name: Uninstall llvm sub-packages
|
||||
package:
|
||||
name: "{{ item }}"
|
||||
state: absent
|
||||
tags: classic
|
||||
with_items:
|
||||
- llvm
|
||||
- llvm-devel
|
||||
- llvm-doc
|
||||
- llvm-googletest
|
||||
- llvm-libs
|
||||
- llvm-static
|
||||
- llvm-test
|
||||
roles:
|
||||
- role: standard-test-basic
|
||||
tags: classic
|
||||
required_packages:
|
||||
- llvm-devel
|
||||
- cmake
|
||||
- ninja-build
|
||||
- gcc
|
||||
- gcc-c++
|
||||
tests:
|
||||
- llvm-devel-cmake
|
Loading…
Reference in New Issue
Block a user