Toshaan Bharvani
2 years ago
commit
ad41d86998
10 changed files with 2075 additions and 0 deletions
@ -0,0 +1,11 @@ |
|||||||
|
diff -up cmake-3.20.0/Tests/RunCMake/CPack/tests/THREADED_ALL/test.cmake.CPACK_THREADS cmake-3.20.0/Tests/RunCMake/CPack/tests/THREADED_ALL/test.cmake |
||||||
|
--- cmake-3.20.0/Tests/RunCMake/CPack/tests/THREADED_ALL/test.cmake.CPACK_THREADS 2021-03-23 10:43:17.000000000 -0500 |
||||||
|
+++ cmake-3.20.0/Tests/RunCMake/CPack/tests/THREADED_ALL/test.cmake 2021-03-23 13:29:14.539434722 -0500 |
||||||
|
@@ -1,6 +1,6 @@ |
||||||
|
install(FILES CMakeLists.txt DESTINATION foo COMPONENT test) |
||||||
|
|
||||||
|
-set(CPACK_THREADS 0) |
||||||
|
+set(CPACK_THREADS 4) |
||||||
|
|
||||||
|
if(PACKAGING_TYPE STREQUAL "COMPONENT") |
||||||
|
set(CPACK_COMPONENTS_ALL test) |
@ -0,0 +1,62 @@ |
|||||||
|
From 635ab930f6185d1ec3e4d99109e2edf0533b0d00 Mon Sep 17 00:00:00 2001 |
||||||
|
From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82@fedoraproject.org> |
||||||
|
Date: Wed, 23 Jun 2021 21:03:15 +0200 |
||||||
|
Subject: [PATCH] testDynamicLoader: Use LIBDL_SO macro if defined. |
||||||
|
MIME-Version: 1.0 |
||||||
|
Content-Type: text/plain; charset=UTF-8 |
||||||
|
Content-Transfer-Encoding: 8bit |
||||||
|
|
||||||
|
Starting with glibc v2.34 there is no external version of libdl.so |
||||||
|
anymore. It has been merged into the glibc libc.so. |
||||||
|
|
||||||
|
Assuming libdl.so will be present will break the test, thus the |
||||||
|
LIBDL_SO macro should be used. If the macro is not defined on |
||||||
|
the system, we ensure it will be defined using the previously |
||||||
|
hardcoded value. |
||||||
|
|
||||||
|
Signed-off-by: Björn Esser <besser82@fedoraproject.org> |
||||||
|
--- |
||||||
|
cmake-3.20.4/Source/kwsys/testDynamicLoader.cxx | 14 ++++++++++++-- |
||||||
|
1 file changed, 12 insertions(+), 2 deletions(-) |
||||||
|
|
||||||
|
Index: cmake-3.21.0-rc1/Source/kwsys/testDynamicLoader.cxx |
||||||
|
=================================================================== |
||||||
|
--- cmake-3.21.0-rc1.orig/Source/kwsys/testDynamicLoader.cxx |
||||||
|
+++ cmake-3.21.0-rc1/Source/kwsys/testDynamicLoader.cxx |
||||||
|
@@ -8,6 +8,25 @@ |
||||||
|
# include <be/kernel/OS.h> /* disable_debugger() API. */ |
||||||
|
#endif |
||||||
|
|
||||||
|
+// Needed for __GLIBC__ test macro. |
||||||
|
+#ifdef __linux__ |
||||||
|
+# include <features.h> |
||||||
|
+#endif |
||||||
|
+ |
||||||
|
+// Will define LIBDL_SO macro on systems with glibc. |
||||||
|
+#ifdef __GLIBC__ |
||||||
|
+# include <gnu/lib-names.h> |
||||||
|
+// Define to LIBC_SO, if not defined by above header. |
||||||
|
+# ifndef LIBDL_SO |
||||||
|
+# define LIBDL_SO LIBC_SO |
||||||
|
+# endif |
||||||
|
+#endif |
||||||
|
+ |
||||||
|
+// Define the LIBDL_SO macro, if not defined above. |
||||||
|
+#ifndef LIBDL_SO |
||||||
|
+# define LIBDL_SO "libdl.so" |
||||||
|
+#endif |
||||||
|
+ |
||||||
|
// Work-around CMake dependency scanning limitation. This must |
||||||
|
// duplicate the above list of headers. |
||||||
|
#if 0 |
||||||
|
@@ -107,8 +126,8 @@ int testDynamicLoader(int argc, char* ar |
||||||
|
// This one is actually fun to test, since dlopen is by default |
||||||
|
// loaded...wonder why :) |
||||||
|
res += TestDynamicLoader("foobar.lib", "dlopen", 0, 1, 0); |
||||||
|
- res += TestDynamicLoader("libdl.so", "dlopen", 1, 1, 1); |
||||||
|
- res += TestDynamicLoader("libdl.so", "TestDynamicLoader", 1, 0, 1); |
||||||
|
+ res += TestDynamicLoader(LIBDL_SO, "dlopen", 1, 1, 1); |
||||||
|
+ res += TestDynamicLoader(LIBDL_SO, "TestDynamicLoader", 1, 0, 1); |
||||||
|
#endif |
||||||
|
// Now try on the generated library |
||||||
|
std::string libname = GetLibName(KWSYS_NAMESPACE_STRING "TestDynload"); |
@ -0,0 +1,22 @@ |
|||||||
|
Index: cmake-3.18.0-rc1/Modules/FindRuby.cmake |
||||||
|
=================================================================== |
||||||
|
--- cmake-3.18.0-rc1.orig/Modules/FindRuby.cmake |
||||||
|
+++ cmake-3.18.0-rc1/Modules/FindRuby.cmake |
||||||
|
@@ -289,14 +289,9 @@ if(Ruby_EXECUTABLE AND NOT Ruby_VERSION_ |
||||||
|
_RUBY_CONFIG_VAR("sitearchdir" Ruby_SITEARCH_DIR) |
||||||
|
_RUBY_CONFIG_VAR("sitelibdir" Ruby_SITELIB_DIR) |
||||||
|
|
||||||
|
- # vendor_ruby available ? |
||||||
|
- execute_process(COMMAND ${Ruby_EXECUTABLE} -r vendor-specific -e "print 'true'" |
||||||
|
- OUTPUT_VARIABLE Ruby_HAS_VENDOR_RUBY ERROR_QUIET) |
||||||
|
- |
||||||
|
- if(Ruby_HAS_VENDOR_RUBY) |
||||||
|
- _RUBY_CONFIG_VAR("vendorlibdir" Ruby_VENDORLIB_DIR) |
||||||
|
- _RUBY_CONFIG_VAR("vendorarchdir" Ruby_VENDORARCH_DIR) |
||||||
|
- endif() |
||||||
|
+ # vendor_ruby |
||||||
|
+ _RUBY_CONFIG_VAR("vendorlibdir" Ruby_VENDORLIB_DIR) |
||||||
|
+ _RUBY_CONFIG_VAR("vendorarchdir" Ruby_VENDORARCH_DIR) |
||||||
|
|
||||||
|
# save the results in the cache so we don't have to run ruby the next time again |
||||||
|
set(Ruby_VERSION_MAJOR ${Ruby_VERSION_MAJOR} CACHE PATH "The Ruby major version" FORCE) |
@ -0,0 +1,9 @@ |
|||||||
|
;; |
||||||
|
;; Setup cmake-mode for autoloading |
||||||
|
;; |
||||||
|
(autoload 'cmake-mode "cmake-mode" "Major mode for editing CMake listfiles." t) |
||||||
|
(setq auto-mode-alist |
||||||
|
(append |
||||||
|
'(("CMakeLists\\.txt\\'" . cmake-mode)) |
||||||
|
'(("\\.cmake\\'" . cmake-mode)) |
||||||
|
auto-mode-alist)) |
@ -0,0 +1,21 @@ |
|||||||
|
Index: cmake-3.17.0-rc1/Modules/Platform/Windows-GNU.cmake |
||||||
|
=================================================================== |
||||||
|
--- cmake-3.17.0-rc1.orig/Modules/Platform/Windows-GNU.cmake |
||||||
|
+++ cmake-3.17.0-rc1/Modules/Platform/Windows-GNU.cmake |
||||||
|
@@ -25,12 +25,14 @@ endif() |
||||||
|
|
||||||
|
if(MINGW) |
||||||
|
set(CMAKE_FIND_LIBRARY_PREFIXES "lib" "") |
||||||
|
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".a" ".lib") |
||||||
|
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll" ".dll.a" ".a" ".lib") |
||||||
|
set(CMAKE_C_STANDARD_LIBRARIES_INIT "-lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32") |
||||||
|
set(CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}") |
||||||
|
+ set(CMAKE_DL_LIBS "dl") |
||||||
|
+else() |
||||||
|
+ set(CMAKE_DL_LIBS "") |
||||||
|
endif() |
||||||
|
|
||||||
|
-set(CMAKE_DL_LIBS "") |
||||||
|
set(CMAKE_LIBRARY_PATH_FLAG "-L") |
||||||
|
set(CMAKE_LINK_LIBRARY_FLAG "-l") |
||||||
|
set(CMAKE_LINK_DEF_FILE_FLAG "") # Empty string: passing the file is enough |
@ -0,0 +1,3 @@ |
|||||||
|
%__cmake_provides %{_rpmconfigdir}/cmake.prov |
||||||
|
%__cmake_requires %{_rpmconfigdir}/cmake.req |
||||||
|
%__cmake_path ^(%{_libdir}|%{_datadir})/cmake/.*/.*(Config\.cmake|-config\.cmake)$ |
@ -0,0 +1,82 @@ |
|||||||
|
#!/usr/bin/python3 |
||||||
|
# -*- coding:utf-8 -*- |
||||||
|
# |
||||||
|
# Copyright (C) 2015 Daniel Vrátil <dvratil@redhat.com> |
||||||
|
# Copyright (C) 2017 Daniel Vrátil <dvratil@fedoraproject.org> |
||||||
|
# |
||||||
|
# |
||||||
|
# This program is free software; you can redistribute it and/or modify |
||||||
|
# it under the terms of the GNU Library General Public License as |
||||||
|
# published by the Free Software Foundation; either version 2 of the |
||||||
|
# License, or (at your option) any later version. |
||||||
|
# |
||||||
|
# This program is distributed in the hope that it will be useful, |
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
# GNU General Public License for more details. |
||||||
|
# |
||||||
|
# You should have received a copy of the GNU Library General Public |
||||||
|
# License along with this program; if not, write to the |
||||||
|
# Free Software Foundation, Inc., |
||||||
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
||||||
|
# |
||||||
|
|
||||||
|
import sys |
||||||
|
import re |
||||||
|
import glob |
||||||
|
|
||||||
|
class CMakeParser: |
||||||
|
def __init__(self, filelist = None): |
||||||
|
if filelist == None: |
||||||
|
filelist = sys.stdin |
||||||
|
|
||||||
|
paths = map(lambda x: x.rstrip(), filelist.readlines()) |
||||||
|
for path in paths: |
||||||
|
modulePath, cmakeModule, lowercase = self.parseCmakeModuleConfig(path) |
||||||
|
if modulePath and cmakeModule: |
||||||
|
version = self.resolveCMakeModuleVersion(modulePath, cmakeModule, lowercase) |
||||||
|
|
||||||
|
if version: |
||||||
|
string = "cmake(" + cmakeModule + ") = " + version |
||||||
|
else: |
||||||
|
string = "cmake(" + cmakeModule + ")" |
||||||
|
if string == string.lower(): |
||||||
|
print(string) |
||||||
|
else: |
||||||
|
# Temporarily print both variants to satisfy requires |
||||||
|
# by the old version of this generator which made mistakes |
||||||
|
print(string) |
||||||
|
print(string.lower()) |
||||||
|
|
||||||
|
|
||||||
|
def parseCmakeModuleConfig(self, configFile): |
||||||
|
paths = configFile.rsplit("/", 3) |
||||||
|
|
||||||
|
modulePath = "%s/cmake/%s" % (paths[0], paths[2]) |
||||||
|
cfgFile = paths[3] |
||||||
|
if cfgFile.endswith("Config.cmake"): |
||||||
|
return (modulePath, cfgFile[0:-len("Config.cmake")], False) |
||||||
|
elif cfgFile.endswith("-config.cmake"): |
||||||
|
return (modulePath, cfgFile[0:-len("-config.cmake")], True) |
||||||
|
else: |
||||||
|
return (None, None, False) |
||||||
|
|
||||||
|
def resolveCMakeModuleVersion(self, modulePath, cmakeModule, lowercase): |
||||||
|
versionFile = ("%s/%s-config-version.cmake" if lowercase else "%s/%sConfigVersion.cmake") % (modulePath, cmakeModule) |
||||||
|
try: |
||||||
|
f = open(versionFile, 'r') |
||||||
|
except: |
||||||
|
return None |
||||||
|
|
||||||
|
for line in f: |
||||||
|
line = line.strip() |
||||||
|
|
||||||
|
# set(PACKAGE_VERSION <version>) |
||||||
|
version = re.match(r"^set[\ ]*\([\ ]*PACKAGE_VERSION[\ ]+[\"]*([0-9\.]+)[\"]*[\ ]*[.]*\)", line) |
||||||
|
if version: |
||||||
|
return version.groups(1)[0] |
||||||
|
|
||||||
|
return None |
||||||
|
|
||||||
|
if __name__ == "__main__": |
||||||
|
parser = CMakeParser() |
@ -0,0 +1,70 @@ |
|||||||
|
#!/usr/bin/python3 |
||||||
|
# -*- coding:utf-8 -*- |
||||||
|
# |
||||||
|
# Copyright (C) 2017 Björn Esser <besser82@fedoraproject.org> |
||||||
|
# |
||||||
|
# based on cmake.prov, which is |
||||||
|
# Copyright (C) 2015 Daniel Vrátil <dvratil@redhat.com> |
||||||
|
# Copyright (C) 2017 Daniel Vrátil <dvratil@fedoraproject.org> |
||||||
|
# |
||||||
|
# |
||||||
|
# This program is free software; you can redistribute it and/or modify |
||||||
|
# it under the terms of the GNU Library General Public License as |
||||||
|
# published by the Free Software Foundation; either version 2 of the |
||||||
|
# License, or (at your option) any later version. |
||||||
|
# |
||||||
|
# This program is distributed in the hope that it will be useful, |
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
# GNU General Public License for more details. |
||||||
|
# |
||||||
|
# You should have received a copy of the GNU Library General Public |
||||||
|
# License along with this program; if not, write to the |
||||||
|
# Free Software Foundation, Inc., |
||||||
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
||||||
|
# |
||||||
|
|
||||||
|
import sys |
||||||
|
import re |
||||||
|
import subprocess |
||||||
|
|
||||||
|
class CMakeParser: |
||||||
|
def __init__(self, filelist = None): |
||||||
|
if filelist == None: |
||||||
|
filelist = sys.stdin |
||||||
|
|
||||||
|
has_module = False |
||||||
|
is_arched = False |
||||||
|
|
||||||
|
isa_suf = subprocess.check_output(["/usr/bin/rpm", "-E %{?_isa}"]).decode().strip() |
||||||
|
|
||||||
|
paths = map(lambda x: x.rstrip(), filelist.readlines()) |
||||||
|
for path in paths: |
||||||
|
modulePath, cmakeModule, lowercase = self.parseCmakeModuleConfig(path) |
||||||
|
if modulePath and cmakeModule: |
||||||
|
has_module = True |
||||||
|
if re.match(".*/usr/lib(64)?/cmake/.*", modulePath): |
||||||
|
is_arched = True |
||||||
|
|
||||||
|
if has_module: |
||||||
|
if is_arched: |
||||||
|
print("cmake-filesystem%s" % isa_suf) |
||||||
|
else: |
||||||
|
print("cmake-filesystem") |
||||||
|
|
||||||
|
|
||||||
|
def parseCmakeModuleConfig(self, configFile): |
||||||
|
paths = configFile.rsplit("/", 3) |
||||||
|
|
||||||
|
modulePath = "%s/cmake/%s" % (paths[0], paths[2]) |
||||||
|
cfgFile = paths[3] |
||||||
|
if cfgFile.endswith("Config.cmake"): |
||||||
|
return (modulePath, cfgFile[0:-len("Config.cmake")], False) |
||||||
|
elif cfgFile.endswith("-config.cmake"): |
||||||
|
return (modulePath, cfgFile[0:-len("-config.cmake")], True) |
||||||
|
else: |
||||||
|
return (None, None, False) |
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__": |
||||||
|
parser = CMakeParser() |
@ -0,0 +1,62 @@ |
|||||||
|
# |
||||||
|
# Macros for cmake |
||||||
|
# |
||||||
|
%_cmake_lib_suffix64 -DLIB_SUFFIX=64 |
||||||
|
%_cmake_shared_libs -DBUILD_SHARED_LIBS:BOOL=ON |
||||||
|
%_cmake_skip_rpath -DCMAKE_SKIP_RPATH:BOOL=ON |
||||||
|
%_cmake_version @@CMAKE_VERSION@@ |
||||||
|
%__cmake /usr/bin/cmake |
||||||
|
%__ctest /usr/bin/ctest |
||||||
|
%__cmake_builddir %{!?__cmake_in_source_build:%{_vpath_builddir}}%{?__cmake_in_source_build:.} |
||||||
|
|
||||||
|
# - Set default compile flags |
||||||
|
# - CMAKE_*_FLAGS_RELEASE are added *after* the *FLAGS environment variables |
||||||
|
# and default to -O3 -DNDEBUG. Strip the -O3 so we can override with *FLAGS |
||||||
|
# - Turn on verbose makefiles so we can see and verify compile flags |
||||||
|
# - Turn off stripping by default so RPM can do it separately |
||||||
|
# - Set default install prefixes and library install directories |
||||||
|
# - Turn on shared libraries by default |
||||||
|
%cmake \ |
||||||
|
%if 0%{?set_build_flags:1} \ |
||||||
|
%set_build_flags \ |
||||||
|
%else \ |
||||||
|
CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \ |
||||||
|
CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \ |
||||||
|
FFLAGS="${FFLAGS:-%optflags%{?_fmoddir: -I%_fmoddir}}" ; export FFLAGS ; \ |
||||||
|
FCFLAGS="${FCFLAGS:-%optflags%{?_fmoddir: -I%_fmoddir}}" ; export FCFLAGS ; \ |
||||||
|
%{?__global_ldflags:LDFLAGS="${LDFLAGS:-%__global_ldflags}" ; export LDFLAGS ;} \ |
||||||
|
%endif \ |
||||||
|
%__cmake \\\ |
||||||
|
%{!?__cmake_in_source_build:-S "%{_vpath_srcdir}"} \\\ |
||||||
|
%{!?__cmake_in_source_build:-B "%{__cmake_builddir}"} \\\ |
||||||
|
-DCMAKE_C_FLAGS_RELEASE:STRING="-DNDEBUG" \\\ |
||||||
|
-DCMAKE_CXX_FLAGS_RELEASE:STRING="-DNDEBUG" \\\ |
||||||
|
-DCMAKE_Fortran_FLAGS_RELEASE:STRING="-DNDEBUG" \\\ |
||||||
|
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \\\ |
||||||
|
-DCMAKE_INSTALL_DO_STRIP:BOOL=OFF \\\ |
||||||
|
-DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \\\ |
||||||
|
-DINCLUDE_INSTALL_DIR:PATH=%{_includedir} \\\ |
||||||
|
-DLIB_INSTALL_DIR:PATH=%{_libdir} \\\ |
||||||
|
-DSYSCONF_INSTALL_DIR:PATH=%{_sysconfdir} \\\ |
||||||
|
-DSHARE_INSTALL_PREFIX:PATH=%{_datadir} \\\ |
||||||
|
%if "%{?_lib}" == "lib64" \ |
||||||
|
%{?_cmake_lib_suffix64} \\\ |
||||||
|
%endif \ |
||||||
|
%{?_cmake_shared_libs} |
||||||
|
|
||||||
|
%cmake_build \ |
||||||
|
%__cmake --build "%{__cmake_builddir}" %{?_smp_mflags} --verbose |
||||||
|
|
||||||
|
%cmake_install \ |
||||||
|
DESTDIR="%{buildroot}" %__cmake --install "%{__cmake_builddir}" |
||||||
|
|
||||||
|
%ctest(:-:) \ |
||||||
|
cd "%{__cmake_builddir}" \ |
||||||
|
%__ctest --output-on-failure --force-new-ctest-process %{?_smp_mflags} %{**} \ |
||||||
|
cd - |
||||||
|
|
||||||
|
|
||||||
|
%cmake@@CMAKE_MAJOR_VERSION@@ %cmake |
||||||
|
%cmake@@CMAKE_MAJOR_VERSION@@_build %cmake_build |
||||||
|
%cmake@@CMAKE_MAJOR_VERSION@@_install %cmake_install |
||||||
|
%ctest@@CMAKE_MAJOR_VERSION@@(:-:) %ctest %{**} |
Loading…
Reference in new issue