gflags: Implement cmake shared/static configs (#24411)
This commit is contained in:
14
mingw-w64-gflags/0003-tests-link.patch
Normal file
14
mingw-w64-gflags/0003-tests-link.patch
Normal file
@@ -0,0 +1,14 @@
|
||||
--- gflags-2.2.2/test/CMakeLists.txt.orig 2025-05-23 11:41:07.056026100 +0300
|
||||
+++ gflags-2.2.2/test/CMakeLists.txt 2025-05-23 11:41:20.825039200 +0300
|
||||
@@ -25,9 +25,9 @@
|
||||
set (type static)
|
||||
endif ()
|
||||
if (BUILD_gflags_LIB)
|
||||
- link_libraries (gflags_${type})
|
||||
+ link_libraries (gflags)
|
||||
else ()
|
||||
- link_libraries (gflags_nothreads_${type})
|
||||
+ link_libraries (gflags_nothreads)
|
||||
endif ()
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
279
mingw-w64-gflags/CMakeLists.txt
Normal file
279
mingw-w64-gflags/CMakeLists.txt
Normal file
@@ -0,0 +1,279 @@
|
||||
cmake_minimum_required(VERSION 3.15 FATAL_ERROR)
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Project Setup
|
||||
project(gflags VERSION 2.2.2 LANGUAGES CXX)
|
||||
|
||||
set(PACKAGE_NAME "gflags")
|
||||
set(PACKAGE_BUGREPORT "https://github.com/gflags/gflags/issues")
|
||||
set(PACKAGE_DESCRIPTION "A commandline flags library that allows for distributed flags.")
|
||||
set(PACKAGE_URL "http://gflags.github.io/gflags")
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# System Checks (Preserved from Original)
|
||||
include ("${CMAKE_CURRENT_SOURCE_DIR}/cmake/utils.cmake")
|
||||
include(CheckIncludeFileCXX)
|
||||
include(CheckCXXSymbolExists)
|
||||
include(CheckTypeSize)
|
||||
include(CheckLibraryExists)
|
||||
include(CMakeDependentOption)
|
||||
include(GNUInstallDirs)
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Library Configuration Options (Modified for Dual Build)
|
||||
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
|
||||
option(BUILD_WITH_THREADS "Build multi-threaded library" ON)
|
||||
|
||||
set (GFLAGS_INCLUDE_DIR "${PACKAGE_NAME}")
|
||||
# ----------------------------------------------------------------------------
|
||||
# Configuration Variables (Preserved)
|
||||
set(PUBLIC_HDRS
|
||||
"gflags.h"
|
||||
"gflags_declare.h"
|
||||
"gflags_completions.h"
|
||||
)
|
||||
|
||||
set(PRIVATE_HDRS
|
||||
"defines.h"
|
||||
"config.h"
|
||||
"util.h"
|
||||
"mutex.h"
|
||||
)
|
||||
|
||||
set(GFLAGS_SRCS
|
||||
"gflags.cc"
|
||||
"gflags_reporting.cc"
|
||||
"gflags_completions.cc"
|
||||
)
|
||||
|
||||
if(WIN32 AND NOT CYGWIN)
|
||||
list(APPEND PRIVATE_HDRS "windows_port.h")
|
||||
list(APPEND GFLAGS_SRCS "windows_port.cc")
|
||||
set(OS_WINDOWS 1)
|
||||
else()
|
||||
set(OS_WINDOWS 0)
|
||||
endif()
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Namespace Handling (Preserved)
|
||||
set(GFLAGS_NAMESPACE "gflags" CACHE STRING "Primary namespace")
|
||||
set(GFLAGS_NAMESPACE_SECONDARY "" CACHE STRING "Secondary namespaces")
|
||||
|
||||
if(GFLAGS_NAMESPACE_SECONDARY)
|
||||
foreach(ns IN LISTS GFLAGS_NAMESPACE_SECONDARY)
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/src/gflags_ns.h.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/include/gflags/gflags_${ns}.h"
|
||||
)
|
||||
list(APPEND PUBLIC_HDRS "${CMAKE_CURRENT_BINARY_DIR}/include/gflags/gflags_${ns}.h")
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# System Configuration (Preserved)
|
||||
if(MSVC)
|
||||
set(HAVE_SYS_TYPES_H 1)
|
||||
set(HAVE_STDDEF_H 1)
|
||||
set(HAVE_UNISTD_H 0)
|
||||
set(HAVE_SYS_STAT_H 1)
|
||||
set(HAVE_SHLWAPI_H 1)
|
||||
if(MSVC_VERSION VERSION_LESS 1600)
|
||||
check_include_file_cxx ("stdint.h" HAVE_STDINT_H)
|
||||
bool_to_int (HAVE_STDINT_H) # used in #if directive
|
||||
else()
|
||||
set(HAVE_STDINT_H 1)
|
||||
endif()
|
||||
if (MSVC_VERSION VERSION_LESS 1800)
|
||||
check_include_file_cxx ("inttypes.h" HAVE_INTTYPES_H)
|
||||
bool_to_int (HAVE_INTTYPES_H) # used in #if directive
|
||||
else()
|
||||
set(HAVE_INTTYPES_H 1)
|
||||
endif()
|
||||
else()
|
||||
foreach (fname IN ITEMS unistd stdint inttypes sys/types sys/stat fnmatch)
|
||||
string(TOUPPER "${fname}" FNAME)
|
||||
string(REPLACE "/" "_" FNAME "${FNAME}")
|
||||
if (NOT HAVE_${FNAME}_H)
|
||||
check_include_file_cxx ("${fname}.h" HAVE_${FNAME}_H)
|
||||
endif()
|
||||
endforeach ()
|
||||
if (NOT HAVE_FNMATCH_H AND OS_WINDOWS)
|
||||
check_include_file_cxx ("shlwapi.h" HAVE_SHLWAPI_H)
|
||||
endif()
|
||||
# the following are used in #if directives not #ifdef
|
||||
bool_to_int (HAVE_STDINT_H)
|
||||
bool_to_int (HAVE_SYS_TYPES_H)
|
||||
bool_to_int (HAVE_INTTYPES_H)
|
||||
endif()
|
||||
|
||||
gflags_define (STRING INTTYPES_FORMAT "Format of integer types: \"C99\" (uint32_t), \"BSD\" (u_int32_t), \"VC7\" (__int32)" "")
|
||||
gflags_property (INTTYPES_FORMAT STRINGS "C99;BSD;VC7")
|
||||
gflags_property (INTTYPES_FORMAT ADVANCED TRUE)
|
||||
if (NOT INTTYPES_FORMAT)
|
||||
set (TYPES uint32_t u_int32_t)
|
||||
if (MSVC)
|
||||
list (INSERT TYPES 0 __int32)
|
||||
endif()
|
||||
foreach (type IN LISTS TYPES)
|
||||
check_type_size (${type} ${type} LANGUAGE CXX)
|
||||
if (HAVE_${type})
|
||||
break ()
|
||||
endif()
|
||||
endforeach ()
|
||||
if (HAVE_uint32_t)
|
||||
gflags_set (INTTYPES_FORMAT C99)
|
||||
elseif (HAVE_u_int32_t)
|
||||
gflags_set (INTTYPES_FORMAT BSD)
|
||||
elseif (HAVE___int32)
|
||||
gflags_set (INTTYPES_FORMAT VC7)
|
||||
else()
|
||||
gflags_property (INTTYPES_FORMAT ADVANCED FALSE)
|
||||
message (FATAL_ERROR "Do not know how to define a 32-bit integer quantity on your system!"
|
||||
" Neither uint32_t, u_int32_t, nor __int32 seem to be available."
|
||||
" Set [GFLAGS_]INTTYPES_FORMAT to either C99, BSD, or VC7 and try again.")
|
||||
endif()
|
||||
endif()
|
||||
# use of special characters in strings to circumvent bug #0008226
|
||||
if ("^${INTTYPES_FORMAT}$" STREQUAL "^WIN$")
|
||||
gflags_set (INTTYPES_FORMAT VC7)
|
||||
endif()
|
||||
if (NOT INTTYPES_FORMAT MATCHES "^(C99|BSD|VC7)$")
|
||||
message (FATAL_ERROR "Invalid value for [GFLAGS_]INTTYPES_FORMAT! Choose one of \"C99\", \"BSD\", or \"VC7\"")
|
||||
endif()
|
||||
set(GFLAGS_INTTYPES_FORMAT "${INTTYPES_FORMAT}")
|
||||
set(GFLAGS_INTTYPES_FORMAT_C99 0)
|
||||
set(GFLAGS_INTTYPES_FORMAT_BSD 0)
|
||||
set(GFLAGS_INTTYPES_FORMAT_VC7 0)
|
||||
set("GFLAGS_INTTYPES_FORMAT_${INTTYPES_FORMAT}" 1)
|
||||
|
||||
if (MSVC)
|
||||
set (HAVE_strtoll 0)
|
||||
set (HAVE_strtoq 0)
|
||||
else()
|
||||
check_cxx_symbol_exists (strtoll stdlib.h HAVE_STRTOLL)
|
||||
if (NOT HAVE_STRTOLL)
|
||||
check_cxx_symbol_exists (strtoq stdlib.h HAVE_STRTOQ)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (BUILD_WITH_THREADS)
|
||||
set (CMAKE_THREAD_PREFER_PTHREAD TRUE)
|
||||
find_package (Threads)
|
||||
if (Threads_FOUND AND CMAKE_USE_PTHREADS_INIT)
|
||||
set (HAVE_PTHREAD 1)
|
||||
check_type_size (pthread_rwlock_t RWLOCK LANGUAGE CXX)
|
||||
else()
|
||||
set (HAVE_PTHREAD 0)
|
||||
endif()
|
||||
if (UNIX AND NOT HAVE_PTHREAD)
|
||||
if (CMAKE_HAVE_PTHREAD_H)
|
||||
set(what "library")
|
||||
else ()
|
||||
set(what ".h file")
|
||||
endif()
|
||||
message (FATAL_ERROR "Could not find pthread${what}. Check the log file"
|
||||
"\n\t${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log"
|
||||
"\nor disable the build of the multi-threaded gflags library (BUILD_WITH_THREADS=OFF).")
|
||||
endif()
|
||||
else()
|
||||
set(HAVE_PTHREAD 0)
|
||||
endif()
|
||||
|
||||
configure_headers (PUBLIC_HDRS ${PUBLIC_HDRS})
|
||||
configure_sources (PRIVATE_HDRS ${PRIVATE_HDRS})
|
||||
configure_sources (GFLAGS_SRCS ${GFLAGS_SRCS})
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Target Creation
|
||||
if(BUILD_SHARED_LIBS)
|
||||
set (type_suffix "_shared")
|
||||
set (LIB_TYPE SHARED)
|
||||
set (GFLAGS_IS_A_DLL 1)
|
||||
else()
|
||||
set (type_suffix "_static")
|
||||
set (LIB_TYPE STATIC)
|
||||
set (GFLAGS_IS_A_DLL 0)
|
||||
endif()
|
||||
|
||||
set (BUILD_gflags_LIB ${BUILD_WITH_THREADS})
|
||||
if(BUILD_WITH_THREADS)
|
||||
set (thread_suffix "")
|
||||
else()
|
||||
set (thread_suffix "_nothreads")
|
||||
endif()
|
||||
|
||||
set (target_name "gflags${thread_suffix}")
|
||||
|
||||
add_library(gflags ${LIB_TYPE} ${GFLAGS_SRCS} ${PRIVATE_HDRS} ${PUBLIC_HDRS})
|
||||
add_library(gflags::gflags ALIAS gflags)
|
||||
|
||||
set_target_properties(gflags PROPERTIES
|
||||
OUTPUT_NAME "${target_name}"
|
||||
VERSION "${PACKAGE_VERSION}"
|
||||
SOVERSION "${PACKAGE_SOVERSION}"
|
||||
)
|
||||
|
||||
set (include_dirs "$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>")
|
||||
list (APPEND include_dirs "$<INSTALL_INTERFACE:${INCLUDE_INSTALL_DIR}>")
|
||||
|
||||
target_include_directories (gflags
|
||||
PUBLIC "${include_dirs}"
|
||||
PRIVATE "${PROJECT_SOURCE_DIR}/src;${PROJECT_BINARY_DIR}/include/${GFLAGS_INCLUDE_DIR}"
|
||||
)
|
||||
|
||||
# Compile Definitions (Modified with proper GFLAGS_IS_A_DLL handling)
|
||||
target_compile_definitions(gflags PUBLIC GFLAGS_IS_A_DLL=${GFLAGS_IS_A_DLL})
|
||||
|
||||
if (NOT BUILD_WITH_THREADS)
|
||||
target_compile_definitions (gflags PRIVATE NO_THREADS)
|
||||
elseif (CMAKE_USE_PTHREADS_INIT)
|
||||
target_link_libraries (gflags ${CMAKE_THREAD_LIBS_INIT})
|
||||
endif()
|
||||
|
||||
if (HAVE_SHLWAPI_H)
|
||||
target_link_libraries (gflags shlwapi)
|
||||
endif ()
|
||||
|
||||
|
||||
if (NOT DEFINED GFLAGS_INSTALL_CMAKEDIR)
|
||||
set(GFLAGS_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/gflags"
|
||||
CACHE STRING "Path to gflags CMake files")
|
||||
endif ()
|
||||
|
||||
install(TARGETS gflags
|
||||
EXPORT gflags_Targets
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Runtime
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Development
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Development)
|
||||
|
||||
install (FILES ${PUBLIC_HDRS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${GFLAGS_INCLUDE_DIR})
|
||||
|
||||
install(EXPORT gflags_Targets
|
||||
DESTINATION ${GFLAGS_INSTALL_CMAKEDIR} COMPONENT Development
|
||||
NAMESPACE gflags::
|
||||
FILE gflags${thread_suffix}${type_suffix}-targets.cmake)
|
||||
|
||||
if (UNIX)
|
||||
install (PROGRAMS src/gflags_completions.sh DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif()
|
||||
|
||||
write_basic_package_version_file(
|
||||
gflagsConfigVersion.cmake
|
||||
COMPATIBILITY SameMajorVersion)
|
||||
|
||||
install(FILES
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/gflagsConfig.cmake"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/gflagsConfigVersion.cmake"
|
||||
DESTINATION ${GFLAGS_INSTALL_CMAKEDIR} COMPONENT Development)
|
||||
|
||||
set (PKGCONFIG_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||
configure_file ("cmake/package.pc.in" "${PROJECT_BINARY_DIR}/${PACKAGE_NAME}.pc" @ONLY)
|
||||
install (FILES "${PROJECT_BINARY_DIR}/${PACKAGE_NAME}.pc" DESTINATION "${PKGCONFIG_INSTALL_DIR}")
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Testing (Preserved)
|
||||
if(BUILD_TESTING)
|
||||
enable_testing()
|
||||
add_subdirectory(test)
|
||||
endif()
|
||||
@@ -4,7 +4,7 @@ _realname=gflags
|
||||
pkgbase=mingw-w64-${_realname}
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=2.2.2
|
||||
pkgrel=4
|
||||
pkgrel=6
|
||||
pkgdesc="Google's Commandline flags module for C++ (mingw-w64)"
|
||||
arch=('any')
|
||||
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
|
||||
@@ -19,11 +19,17 @@ checkdepends=("${MINGW_PACKAGE_PREFIX}-gtest")
|
||||
source=("https://github.com/gflags/gflags/archive/v${pkgver}/${_realname}-${pkgver}.tar.gz"
|
||||
0001-fix-link-library.patch
|
||||
0002-fix-static-libs.patch
|
||||
"${_realname}-2.2.2.patch")
|
||||
"${_realname}-2.2.2.patch"
|
||||
CMakeLists.txt
|
||||
gflagsConfig.cmake
|
||||
0003-tests-link.patch)
|
||||
sha256sums=('34af2f15cf7367513b352bdcd2493ab14ce43692d2dcd9dfc499492966c64dcf'
|
||||
'1bb0d61f8273ec487012636ca404686cb7589cefb9c57477f2a1e380746d92f7'
|
||||
'07dec6f4d117c226c1521de623e17180e9dee1b54e81a242fb8a974cf58726a7'
|
||||
'fa257fc8fb5fdef6267bf65b5355ccd967ca97d30672bddca55d64219ee848fd')
|
||||
'97fadc6add5c5dfab13046930e3470f16abd22f9cf6d33b87c6e8b4616e0d206'
|
||||
'eaecfe4e7944270b0352a3ff9c1fcebdae6dac9fd30344d00c2b404b085a1457'
|
||||
'd1179c3f5629218b7a532196459e1ea6d190e69bda8e5c22670db8bc3cd388b5'
|
||||
'de2dd6d257a3c582833d4d85d4347ebe425dc71c14b29de7eff7b5f85a905d9a')
|
||||
|
||||
prepare() {
|
||||
cd "${srcdir}/${_realname}-${pkgver}"
|
||||
@@ -32,25 +38,43 @@ prepare() {
|
||||
|
||||
# https://github.com/gflags/gflags/pull/334
|
||||
patch -Np1 -i "${srcdir}/${_realname}-2.2.2.patch"
|
||||
|
||||
cp -f ${srcdir}/CMakeLists.txt .
|
||||
cp -f ${srcdir}/gflagsConfig.cmake .
|
||||
patch -Np1 -i "${srcdir}/0003-tests-link.patch"
|
||||
}
|
||||
|
||||
build() {
|
||||
mkdir -p "${srcdir}/build-${MSYSTEM}" && cd "${srcdir}/build-${MSYSTEM}"
|
||||
|
||||
if check_option "debug" "n"; then
|
||||
extra_config+=("-DCMAKE_BUILD_TYPE=Release")
|
||||
else
|
||||
extra_config+=("-DCMAKE_BUILD_TYPE=Debug")
|
||||
fi
|
||||
|
||||
mkdir -p "${srcdir}/shared-${MSYSTEM}" && cd "${srcdir}/shared-${MSYSTEM}"
|
||||
|
||||
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
|
||||
${MINGW_PREFIX}/bin/cmake.exe \
|
||||
-G"Ninja" \
|
||||
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
|
||||
${extra_config} \
|
||||
-DBUILD_STATIC_LIBS=ON \
|
||||
-DBUILD_SHARED_LIBS=ON \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DBUILD_WITH_THREADS=ON \
|
||||
-DBUILD_TESTING=ON \
|
||||
"../${_realname}-${pkgver}"
|
||||
|
||||
cmake --build .
|
||||
|
||||
mkdir -p "${srcdir}/static-${MSYSTEM}" && cd "${srcdir}/static-${MSYSTEM}"
|
||||
|
||||
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
|
||||
${MINGW_PREFIX}/bin/cmake.exe \
|
||||
-G"Ninja" \
|
||||
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
|
||||
${extra_config} \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_WITH_THREADS=ON \
|
||||
-DBUILD_TESTING=ON \
|
||||
"../${_realname}-${pkgver}"
|
||||
|
||||
cmake --build .
|
||||
@@ -64,8 +88,11 @@ check() {
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/build-${MSYSTEM}"
|
||||
cd "${srcdir}/shared-${MSYSTEM}"
|
||||
DESTDIR="${pkgdir}" cmake --install .
|
||||
INSTALL -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING.txt \
|
||||
"${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.txt
|
||||
|
||||
cd "${srcdir}/static-${MSYSTEM}"
|
||||
DESTDIR="${pkgdir}" cmake --install .
|
||||
|
||||
INSTALL -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING.txt "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.txt
|
||||
}
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
--- gflags-2.2.2/CMakeLists.txt.orig 2018-11-12 00:21:00.000000000 +0300
|
||||
+++ gflags-2.2.2/CMakeLists.txt 2018-11-19 13:23:58.872932000 +0300
|
||||
diff -Naur gflags-2.2.2-orig/CMakeLists.txt gflags-2.2.2/CMakeLists.txt
|
||||
--- gflags-2.2.2-orig/CMakeLists.txt 2025-05-22 12:12:28.664979400 +0300
|
||||
+++ gflags-2.2.2/CMakeLists.txt 2025-05-22 12:35:29.120054700 +0300
|
||||
@@ -70,7 +70,7 @@
|
||||
## - GFLAGS_INSTALL_SHARED_LIBS
|
||||
## - GFLAGS_INSTALL_STATIC_LIBS
|
||||
|
||||
-cmake_minimum_required (VERSION 3.0.2 FATAL_ERROR)
|
||||
+cmake_minimum_required (VERSION 3.5 FATAL_ERROR)
|
||||
|
||||
if (POLICY CMP0042)
|
||||
cmake_policy (SET CMP0042 NEW)
|
||||
@@ -413,7 +413,7 @@
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
@@ -9,3 +19,37 @@
|
||||
set (RUNTIME_INSTALL_DIR "bin")
|
||||
set (LIBRARY_INSTALL_DIR "lib")
|
||||
set (INCLUDE_INSTALL_DIR "include")
|
||||
diff -Naur gflags-2.2.2-orig/cmake/config.cmake.in gflags-2.2.2/cmake/config.cmake.in
|
||||
--- gflags-2.2.2-orig/cmake/config.cmake.in 2018-11-12 00:21:00.000000000 +0300
|
||||
+++ gflags-2.2.2/cmake/config.cmake.in 2025-05-22 12:31:22.976621300 +0300
|
||||
@@ -78,7 +78,7 @@
|
||||
else ()
|
||||
set (@PACKAGE_PREFIX@_NOTHREADS FALSE)
|
||||
endif ()
|
||||
- elseif (TARGET ${@PACKAGE_PREFIX@_TARGET_PREFIX}PACKAGE_NAME@_static OR TARGET ${@PACKAGE_PREFIX@_TARGET_PREFIX}@PACKAGE_NAME@_shared)
|
||||
+ elseif (TARGET ${@PACKAGE_PREFIX@_TARGET_PREFIX}@PACKAGE_NAME@_static OR TARGET ${@PACKAGE_PREFIX@_TARGET_PREFIX}@PACKAGE_NAME@_shared)
|
||||
set (@PACKAGE_PREFIX@_NOTHREADS FALSE)
|
||||
else ()
|
||||
set (@PACKAGE_PREFIX@_NOTHREADS TRUE)
|
||||
diff -Naur gflags-2.2.2-orig/test/config/CMakeLists.txt gflags-2.2.2/test/config/CMakeLists.txt
|
||||
--- gflags-2.2.2-orig/test/config/CMakeLists.txt 2018-11-12 00:21:00.000000000 +0300
|
||||
+++ gflags-2.2.2/test/config/CMakeLists.txt 2025-05-22 12:35:59.813232600 +0300
|
||||
@@ -1,6 +1,6 @@
|
||||
## gflags package configuration tests
|
||||
|
||||
-cmake_minimum_required (VERSION 2.8.12 FATAL_ERROR)
|
||||
+cmake_minimum_required (VERSION 3.5 FATAL_ERROR)
|
||||
|
||||
project (gflags_${TEST_NAME})
|
||||
|
||||
diff -Naur gflags-2.2.2-orig/test/nc/CMakeLists.txt gflags-2.2.2/test/nc/CMakeLists.txt
|
||||
--- gflags-2.2.2-orig/test/nc/CMakeLists.txt 2018-11-12 00:21:00.000000000 +0300
|
||||
+++ gflags-2.2.2/test/nc/CMakeLists.txt 2025-05-22 12:36:15.080362100 +0300
|
||||
@@ -1,6 +1,6 @@
|
||||
## gflags negative compilation tests
|
||||
|
||||
-cmake_minimum_required (VERSION 2.8.12 FATAL_ERROR)
|
||||
+cmake_minimum_required (VERSION 3.5 FATAL_ERROR)
|
||||
|
||||
if (NOT TEST_NAME)
|
||||
message (FATAL_ERROR "Missing TEST_NAME CMake flag")
|
||||
|
||||
70
mingw-w64-gflags/gflagsConfig.cmake
Normal file
70
mingw-w64-gflags/gflagsConfig.cmake
Normal file
@@ -0,0 +1,70 @@
|
||||
## gflags CMake configuration file
|
||||
|
||||
include(CMakeFindDependencyMacro)
|
||||
if(ON)
|
||||
find_dependency(Threads)
|
||||
endif()
|
||||
|
||||
set(gflags_known_comps static shared nothreads_static nothreads_shared)
|
||||
set(gflags_comp_static NO)
|
||||
set(gflags_comp_shared NO)
|
||||
set(gflags_comp_nothreads_static NO)
|
||||
set(gflags_comp_nothreads_shared NO)
|
||||
foreach (gflags_comp IN LISTS ${CMAKE_FIND_PACKAGE_NAME}_FIND_COMPONENTS)
|
||||
if (gflags_comp IN_LIST gflags_known_comps)
|
||||
set(gflags_comp_${gflags_comp} YES)
|
||||
else ()
|
||||
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE
|
||||
"gflags does not recognize component `${gflags_comp}`.")
|
||||
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
||||
return()
|
||||
endif ()
|
||||
endforeach ()
|
||||
|
||||
if (gflags_comp_static AND gflags_comp_shared)
|
||||
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE
|
||||
"gflags `static` and `shared` components are mutually exclusive.")
|
||||
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
||||
return()
|
||||
endif ()
|
||||
|
||||
set(gflags_static_targets "${CMAKE_CURRENT_LIST_DIR}/gflags_static-targets.cmake")
|
||||
set(gflags_shared_targets "${CMAKE_CURRENT_LIST_DIR}/gflags_shared-targets.cmake")
|
||||
set(gflags_nothreads_static_targets "${CMAKE_CURRENT_LIST_DIR}/gflags_nothreads_static-targets.cmake")
|
||||
set(gflags_nothreads_shared_targets "${CMAKE_CURRENT_LIST_DIR}/gflags_nothreads_shared-targets.cmake")
|
||||
|
||||
macro(gflags_load_targets type)
|
||||
if (NOT EXISTS "${gflags_${type}_targets}")
|
||||
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE
|
||||
"gflags `${type}` libraries were requested but not found.")
|
||||
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
||||
return()
|
||||
endif ()
|
||||
include("${gflags_${type}_targets}")
|
||||
endmacro()
|
||||
|
||||
if (gflags_comp_static)
|
||||
gflags_load_targets(static)
|
||||
elseif (gflags_comp_shared)
|
||||
gflags_load_targets(shared)
|
||||
elseif (gflags_comp_nothreads_shared)
|
||||
gflags_load_targets(nothreads_shared)
|
||||
elseif (gflags_comp_nothreads_static)
|
||||
gflags_load_targets(nothreads_static)
|
||||
elseif (DEFINED gflags_SHARED_LIBS AND gflags_SHARED_LIBS)
|
||||
gflags_load_targets(shared)
|
||||
elseif (DEFINED gflags_SHARED_LIBS AND NOT gflags_SHARED_LIBS)
|
||||
gflags_load_targets(static)
|
||||
elseif (BUILD_SHARED_LIBS)
|
||||
if (EXISTS "${gflags_shared_targets}")
|
||||
gflags_load_targets(shared)
|
||||
else ()
|
||||
gflags_load_targets(static)
|
||||
endif ()
|
||||
else ()
|
||||
if (EXISTS "${gflags_static_targets}")
|
||||
gflags_load_targets(static)
|
||||
else ()
|
||||
gflags_load_targets(shared)
|
||||
endif ()
|
||||
endif ()
|
||||
Reference in New Issue
Block a user