aboutsummaryrefslogtreecommitdiff
path: root/scripts/cmake
diff options
context:
space:
mode:
authorArkadiy Shapkin <arkady.shapkin@gmail.com>2017-05-11 01:08:52 +0300
committerArkadiy Shapkin <arkady.shapkin@gmail.com>2017-05-11 14:44:13 +0300
commit083bfa14b0dd1481e08e1c6424dadd090fbb8bad (patch)
treeebce370e1af436adaab0f076f99ded3bff6466ad /scripts/cmake
parent6721b5337d00ea65cc8cb5fe1d8fa8c65e7a8246 (diff)
downloadvcpkg-083bfa14b0dd1481e08e1c6424dadd090fbb8bad.tar.gz
vcpkg-083bfa14b0dd1481e08e1c6424dadd090fbb8bad.zip
[c-ares] Initial commit for c-ares library
vcpkg_fixup_cmake_targets() support CONFIG_PATH parameter
Diffstat (limited to 'scripts/cmake')
-rw-r--r--scripts/cmake/vcpkg_fixup_cmake_targets.cmake47
1 files changed, 45 insertions, 2 deletions
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()