aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-07-07 23:11:46 -0700
committerRobert Schumacher <roschuma@microsoft.com>2017-07-10 15:10:39 -0700
commitce69ed555265ec85fd4c24a44600354b94930758 (patch)
tree58b6b2b20721ffb8af07a1c97cd912b832b0ea6f
parent0fae90a20e766e98b972333dd647e7ba99a7d93d (diff)
downloadvcpkg-ce69ed555265ec85fd4c24a44600354b94930758.tar.gz
vcpkg-ce69ed555265ec85fd4c24a44600354b94930758.zip
[libconfig] Simplify CMake. Move header patching into the portfile.
-rw-r--r--ports/libconfig/CMakeLists.txt36
-rw-r--r--ports/libconfig/CONTROL2
-rw-r--r--ports/libconfig/portfile.cmake15
3 files changed, 26 insertions, 27 deletions
diff --git a/ports/libconfig/CMakeLists.txt b/ports/libconfig/CMakeLists.txt
index ca56aad67..8762917ef 100644
--- a/ports/libconfig/CMakeLists.txt
+++ b/ports/libconfig/CMakeLists.txt
@@ -1,7 +1,6 @@
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)
add_definitions(-Dscandir=libconfig_scandir)
@@ -20,27 +19,26 @@ set(CPP_SOURCES
lib/libconfigcpp.cc
)
-include_directories(lib)
-
find_path(DIRENT_H dirent.h)
find_path(STDINT_H stdint.h)
-include_directories(${DIRENT_H})
-include_directories(${STDINT_H})
+include_directories(lib ${DIRENT_H} ${STDINT_H})
+
+add_definitions(-DYY_NO_UNISTD_H -DYY_USE_CONST)
add_library(libconfig ${C_SOURCES})
add_library(libconfig++ ${CPP_SOURCES})
-target_link_libraries(libconfig++ libconfig)
-
if(BUILD_SHARED_LIBS)
- target_compile_definitions(libconfig PRIVATE -DLIBCONFIG_EXPORTS -DYY_NO_UNISTD_H -DYY_USE_CONST)
- target_compile_definitions(libconfig++ PRIVATE -DLIBCONFIG_EXPORTS -DLIBCONFIGXX_EXPORTS -DYY_NO_UNISTD_H -DYY_USE_CONST)
+ target_compile_definitions(libconfig PRIVATE -DLIBCONFIG_EXPORTS)
+ target_compile_definitions(libconfig++ PRIVATE -DLIBCONFIGXX_EXPORTS)
else()
- target_compile_definitions(libconfig PRIVATE -DLIBCONFIG_STATIC -DYY_NO_UNISTD_H)
- target_compile_definitions(libconfig++ PRIVATE -DLIBCONFIG_STATIC -DYY_NO_UNISTD_H)
+ target_compile_definitions(libconfig PUBLIC -DLIBCONFIG_STATIC)
+ target_compile_definitions(libconfig++ PUBLIC -DLIBCONFIGXX_STATIC)
endif()
+target_link_libraries(libconfig++ PRIVATE libconfig)
+
install(
TARGETS libconfig libconfig++
RUNTIME DESTINATION bin
@@ -48,20 +46,6 @@ install(
ARCHIVE DESTINATION lib
)
-file(READ lib/libconfig.h++ LIBCONFIGXX_H)
-file(READ lib/libconfig.h LIBCONFIG_H)
-
-if(BUILD_SHARED_LIBS)
- string(REPLACE "defined(LIBCONFIGXX_EXPORTS)" "1" LIBCONFIGXX_H "${LIBCONFIGXX_H}")
- string(REPLACE "defined(LIBCONFIG_EXPORTS)" "1" LIBCONFIG_H "${LIBCONFIGXX_H}")
-else()
- string(REPLACE "defined(LIBCONFIGXX_STATIC)" "1" LIBCONFIGXX_H "${LIBCONFIGXX_H}")
- string(REPLACE "defined(LIBCONFIG_STATIC)" "1" LIBCONFIG_H "${LIBCONFIG_H}")
-endif()
-
-file(WRITE ${PROJECT_BINARY_DIR}/libconfig.h++ "${LIBCONFIGXX_H}")
-file(WRITE ${PROJECT_BINARY_DIR}/libconfig.h "${LIBCONFIG_H}")
-
if(NOT DISABLE_INSTALL_HEADERS)
- install(FILES ${PROJECT_BINARY_DIR}/libconfig.h++ ${PROJECT_BINARY_DIR}/libconfig.h DESTINATION include)
+ install(FILES lib/libconfig.h++ lib/libconfig.h DESTINATION include)
endif()
diff --git a/ports/libconfig/CONTROL b/ports/libconfig/CONTROL
index d86439cfd..45bf1db9b 100644
--- a/ports/libconfig/CONTROL
+++ b/ports/libconfig/CONTROL
@@ -1,4 +1,4 @@
Source: libconfig
Version: 1.6.0
Description: C/C++ library for processing configuration files
-Build-Depends: msinttypes, dirent
+Build-Depends: dirent
diff --git a/ports/libconfig/portfile.cmake b/ports/libconfig/portfile.cmake
index 7838958da..73028de7c 100644
--- a/ports/libconfig/portfile.cmake
+++ b/ports/libconfig/portfile.cmake
@@ -26,6 +26,21 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
+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/libconfig RENAME copyright)
vcpkg_copy_pdbs()