diff options
| author | Arkadiy Shapkin <arkady.shapkin@gmail.com> | 2017-05-11 01:08:52 +0300 |
|---|---|---|
| committer | Arkadiy Shapkin <arkady.shapkin@gmail.com> | 2017-05-11 14:44:13 +0300 |
| commit | 083bfa14b0dd1481e08e1c6424dadd090fbb8bad (patch) | |
| tree | ebce370e1af436adaab0f076f99ded3bff6466ad | |
| parent | 6721b5337d00ea65cc8cb5fe1d8fa8c65e7a8246 (diff) | |
| download | vcpkg-083bfa14b0dd1481e08e1c6424dadd090fbb8bad.tar.gz vcpkg-083bfa14b0dd1481e08e1c6424dadd090fbb8bad.zip | |
[c-ares] Initial commit for c-ares library
vcpkg_fixup_cmake_targets() support CONFIG_PATH parameter
| -rw-r--r-- | ports/c-ares/CONTROL | 4 | ||||
| -rw-r--r-- | ports/c-ares/portfile.cmake | 42 | ||||
| -rw-r--r-- | scripts/cmake/vcpkg_fixup_cmake_targets.cmake | 47 |
3 files changed, 91 insertions, 2 deletions
diff --git a/ports/c-ares/CONTROL b/ports/c-ares/CONTROL new file mode 100644 index 000000000..977066b4c --- /dev/null +++ b/ports/c-ares/CONTROL @@ -0,0 +1,4 @@ +Source: c-ares +Version: 1.12.1-dev-40eb41f +Description: A C library for asynchronous DNS requests +Build-Depends:
\ No newline at end of file diff --git a/ports/c-ares/portfile.cmake b/ports/c-ares/portfile.cmake new file mode 100644 index 000000000..696bb0fbc --- /dev/null +++ b/ports/c-ares/portfile.cmake @@ -0,0 +1,42 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO c-ares/c-ares + REF 40eb41f522eb9a86f9397352f10d1e63c89f2c54 + SHA512 901d7da97098f79d13ae8d72c85936bd15fbd6b65399c247462ad5367ac85ff32c90325998c21364f959e1bde2c8b7dbc9d9d7524ea34e6bc48dfb3854c199e1 + HEAD_REF master +) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + set(CARES_STATIC ON) + set(CARES_SHARED OFF) +else() + set(CARES_STATIC OFF) + set(CARES_SHARED ON) +endif() + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DCARES_STATIC=${CARES_STATIC} + -DCARES_SHARED=${CARES_SHARED} +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/c-ares") + +file(GLOB RELEASE_EXE_FILES "${CURRENT_PACKAGES_DIR}/bin/*.exe") +file(REMOVE ${RELEASE_EXE_FILES}) +file(GLOB DEBUG_EXE_FILES "${CURRENT_PACKAGES_DIR}/debug/bin/*.exe") +file(REMOVE ${DEBUG_EXE_FILES}) + +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +file(COPY ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/c-ares) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/c-ares/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/c-ares/copyright) diff --git a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake index f753f6396..7c1891584 100644 --- a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake +++ b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake @@ -7,15 +7,58 @@ # Transform all references matching /bin/*.exe to /tools/<port>/*.exe # # :: -# vcpkg_fixup_cmake_targets() +# vcpkg_fixup_cmake_targets([CONFIG_PATH <config_path>]) +# +# ``CONFIG_PATH`` +# *.cmake files subdirectory (like "lib/cmake/${PORT}"). # function(vcpkg_fixup_cmake_targets) - cmake_parse_arguments(_vfct "" "" "" ${ARGN}) + cmake_parse_arguments(_vfct "" "CONFIG_PATH" "" ${ARGN}) set(DEBUG_SHARE ${CURRENT_PACKAGES_DIR}/debug/share/${PORT}) set(RELEASE_SHARE ${CURRENT_PACKAGES_DIR}/share/${PORT}) + if(NOT ${_vfct_CONFIG_PATH} STREQUAL "") + set(DEBUG_CONFIG ${CURRENT_PACKAGES_DIR}/debug/${_vfct_CONFIG_PATH}) + set(RELEASE_CONFIG ${CURRENT_PACKAGES_DIR}/${_vfct_CONFIG_PATH}) + + if(NOT EXISTS ${DEBUG_CONFIG}) + message(FATAL_ERROR "'${DEBUG_CONFIG}' does not exist.") + endif() + + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/share) + file(RENAME ${DEBUG_CONFIG} ${DEBUG_SHARE}) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share) + file(RENAME ${RELEASE_CONFIG} ${RELEASE_SHARE}) + + get_filename_component(DEBUG_CONFIG_DIR_NAME ${DEBUG_CONFIG} NAME) + string(TOLOWER "${DEBUG_CONFIG_DIR_NAME}" DEBUG_CONFIG_DIR_NAME) + if(${DEBUG_CONFIG_DIR_NAME} STREQUAL "cmake") + file(REMOVE_RECURSE ${DEBUG_CONFIG}) + else() + get_filename_component(DEBUG_CONFIG_PARENT_DIR ${DEBUG_CONFIG} DIRECTORY) + get_filename_component(DEBUG_CONFIG_DIR_NAME ${DEBUG_CONFIG_PARENT_DIR} NAME) + string(TOLOWER "${DEBUG_CONFIG_DIR_NAME}" DEBUG_CONFIG_DIR_NAME) + if(${DEBUG_CONFIG_DIR_NAME} STREQUAL "cmake") + file(REMOVE_RECURSE ${DEBUG_CONFIG_PARENT_DIR}) + endif() + endif() + + get_filename_component(RELEASE_CONFIG_DIR_NAME ${RELEASE_CONFIG} NAME) + string(TOLOWER "${RELEASE_CONFIG_DIR_NAME}" RELEASE_CONFIG_DIR_NAME) + if(${RELEASE_CONFIG_DIR_NAME} STREQUAL "cmake") + file(REMOVE_RECURSE ${RELEASE_CONFIG}) + else() + get_filename_component(RELEASE_CONFIG_PARENT_DIR ${RELEASE_CONFIG} DIRECTORY) + get_filename_component(RELEASE_CONFIG_DIR_NAME ${RELEASE_CONFIG_PARENT_DIR} NAME) + string(TOLOWER "${RELEASE_CONFIG_DIR_NAME}" RELEASE_CONFIG_DIR_NAME) + if(${RELEASE_CONFIG_DIR_NAME} STREQUAL "cmake") + file(REMOVE_RECURSE ${RELEASE_CONFIG_PARENT_DIR}) + endif() + endif() + endif() + if(NOT EXISTS ${DEBUG_SHARE}) message(FATAL_ERROR "'${DEBUG_SHARE}' does not exist.") endif() |
