[libconfig] Cleanup, fix libconfig++ cmake export (#34646)

* [libconfig] No vendored CMakeLists.txt

* [libconfig] Cleanup

* [libconfig] Fix libconfig++ cmake export
This commit is contained in:
Kai Pastor 2023-10-23 20:29:14 +02:00 committed by GitHub
parent af4749fc9d
commit bcc8b849b3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 45 additions and 95 deletions

View File

@ -1,53 +0,0 @@
cmake_minimum_required(VERSION 3.5.1)
project(libconfig C CXX)
if(MSVC)
add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS -DYY_NO_UNISTD_H -DYY_USE_CONST)
endif()
set(C_SOURCES
lib/grammar.c
lib/libconfig.c
lib/scanctx.c
lib/scanner.c
lib/strbuf.c
lib/strvec.c
lib/util.c
lib/wincompat.c
)
set(CPP_SOURCES
lib/libconfigcpp.cc
)
set(CMAKE_C_STANDARD 99)
include_directories(lib ${STDINT_H})
add_library(libconfig ${C_SOURCES})
add_library(libconfig++ ${CPP_SOURCES})
if(BUILD_SHARED_LIBS)
target_compile_definitions(libconfig PRIVATE -DLIBCONFIG_EXPORTS)
target_compile_definitions(libconfig++ PRIVATE -DLIBCONFIGXX_EXPORTS)
else()
target_compile_definitions(libconfig PUBLIC -DLIBCONFIG_STATIC)
target_compile_definitions(libconfig++ PUBLIC -DLIBCONFIGXX_STATIC)
endif()
if (WIN32)
# Linux doesn't have shlwapi
target_link_libraries(libconfig shlwapi)
endif()
target_link_libraries(libconfig++ PRIVATE libconfig)
install(
TARGETS libconfig libconfig++
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
if(NOT DISABLE_INSTALL_HEADERS)
install(FILES lib/libconfig.h++ lib/libconfig.h DESTINATION include)
endif()

View File

@ -0,0 +1,22 @@
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 3a64deb..233c89f 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -112,7 +112,7 @@ install(TARGETS ${libname}
)
install(TARGETS ${libname}++
- EXPORT libconfig++Targets
+ EXPORT libconfigTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
@@ -121,7 +121,7 @@ install(TARGETS ${libname}++
include(CMakePackageConfigHelpers)
-foreach(target_name libconfig libconfig++)
+foreach(target_name libconfig)
write_basic_package_version_file("${target_name}ConfigVersion.cmake"
VERSION ${PACKAGE_VERSION}
COMPATIBILITY SameMajorVersion

View File

@ -1,52 +1,28 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO hyperrealm/libconfig
REF v1.7.3
REF "v${VERSION}"
SHA512 3749bf9eb29bab0f6b14f4fc759f0c419ed27a843842aaabed1ec1fbe0faa8c93322ff875ca1291d69cb28a39ece86d512aec42c2140d566c38c56dc616734f4
HEAD_REF master
PATCHES
libconfig++-cmake-export.diff
)
if (NOT VCPKG_USE_HEAD_VERSION)
message("If you would like to use cmake with the port, use `--head` option with vcpkg install.")
file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}")
endif()
if (NOT VCPKG_USE_HEAD_VERSION)
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
)
else()
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
-DBUILD_EXAMPLES=OFF
-DBUILD_TESTS=OFF
)
endif()
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
-DBUILD_EXAMPLES=OFF
-DBUILD_TESTS=OFF
)
vcpkg_cmake_install()
vcpkg_copy_pdbs()
vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libconfig)
if (VCPKG_USE_HEAD_VERSION)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libconfig)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libconfig.h" "defined(LIBCONFIG_STATIC)" "1")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libconfig.h++" "defined(LIBCONFIGXX_STATIC)" "1")
endif()
foreach(FILE "${CURRENT_PACKAGES_DIR}/include/libconfig.h++" "${CURRENT_PACKAGES_DIR}/include/libconfig.h")
file(READ ${FILE} _contents)
string(REPLACE "defined(LIBCONFIGXX_EXPORTS)" "0" _contents "${_contents}")
string(REPLACE "defined(LIBCONFIG_EXPORTS)" "0" _contents "${_contents}")
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
string(REPLACE "defined(LIBCONFIGXX_STATIC)" "0" _contents "${_contents}")
string(REPLACE "defined(LIBCONFIG_STATIC)" "0" _contents "${_contents}")
else()
string(REPLACE "defined(LIBCONFIGXX_STATIC)" "1" _contents "${_contents}")
string(REPLACE "defined(LIBCONFIG_STATIC)" "1" _contents "${_contents}")
endif()
file(WRITE ${FILE} "${_contents}")
endforeach()
file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")

View File

@ -1,7 +1,7 @@
{
"name": "libconfig",
"version": "1.7.3",
"port-version": 3,
"port-version": 4,
"description": "C/C++ library for processing configuration files",
"homepage": "https://github.com/hyperrealm/libconfig",
"dependencies": [

View File

@ -4042,7 +4042,7 @@
},
"libconfig": {
"baseline": "1.7.3",
"port-version": 3
"port-version": 4
},
"libconfuse": {
"baseline": "2019-07-14",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "378d40ce036cf220dfaedf27f625a28d6e72d3e9",
"version": "1.7.3",
"port-version": 4
},
{
"git-tree": "9056cd67b1885ed4721a931467fb7fd1eb5b4bf3",
"version": "1.7.3",