Skip to content

Commit

Permalink
[c-ares] Initial commit for c-ares library
Browse files Browse the repository at this point in the history
vcpkg_fixup_cmake_targets() support CONFIG_PATH parameter
  • Loading branch information
KindDragon committed May 11, 2017
1 parent 6721b53 commit 083bfa1
Show file tree
Hide file tree
Showing 3 changed files with 91 additions and 2 deletions.
4 changes: 4 additions & 0 deletions ports/c-ares/CONTROL
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Source: c-ares
Version: 1.12.1-dev-40eb41f
Description: A C library for asynchronous DNS requests
Build-Depends:
42 changes: 42 additions & 0 deletions ports/c-ares/portfile.cmake
Original file line number Diff line number Diff line change
@@ -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)
47 changes: 45 additions & 2 deletions scripts/cmake/vcpkg_fixup_cmake_targets.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down

0 comments on commit 083bfa1

Please sign in to comment.