diff --git a/CMakeLists.txt b/CMakeLists.txt index dee9d44..b85ef76 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.10) -project(pmm VERSION 1.5.1) +project(pmm VERSION 1.6.0) set(PMM_ALWAYS_DOWNLOAD TRUE) set(PMM_URL "file://${PROJECT_SOURCE_DIR}/pmm") diff --git a/changelog.cmake b/changelog.cmake index 6fd81e9..b6950c1 100644 --- a/changelog.cmake +++ b/changelog.cmake @@ -103,6 +103,9 @@ _pmm_changes(1.5.1 "Fix: Unable to run in script mode due to define_property() calls" "Fix: Generated Conan profiles without respecting the CMAKE_BUILD_TYPE" ) +_pmm_changes(1.6.0 + "New: add OVERLAY_PORTS and OVERLAY_TRIPLETS to pmm(VCPKG)" + ) message(STATUS "[pmm] To update, simply change the value of PMM_VERSION_INIT in pmm.cmake") message(STATUS "[pmm] You can disable these messages by setting PMM_IGNORE_NEW_VERSION to TRUE before including pmm.cmake") diff --git a/conanfile.py b/conanfile.py index 3b6d373..f617d4d 100644 --- a/conanfile.py +++ b/conanfile.py @@ -3,7 +3,7 @@ class PMM(conans.ConanFile): name = 'pmm' - version = '1.5.1' + version = '1.6.0' settings = None exports_sources = '*' generators = 'cmake' diff --git a/latest-version.cmake b/latest-version.cmake index da25555..e192c13 100644 --- a/latest-version.cmake +++ b/latest-version.cmake @@ -1 +1 @@ -set(PMM_LATEST_VERSION 1.5.1) \ No newline at end of file +set(PMM_LATEST_VERSION 1.6.0) \ No newline at end of file diff --git a/pmm.cmake b/pmm.cmake index e341399..894efc1 100644 --- a/pmm.cmake +++ b/pmm.cmake @@ -21,11 +21,11 @@ ## SOFTWARE. # Bump this version to change what PMM version is downloaded -set(PMM_VERSION_INIT 1.5.1) +set(PMM_VERSION_INIT 1.6.0) # Helpful macro to set a variable if it isn't already set macro(_pmm_set_if_undef varname) - if(NOT DEFINED "${varname}") + if(NOT DEFINED ${varname}) set("${varname}" "${ARGN}") endif() endmacro() diff --git a/pmm/vcpkg.cmake b/pmm/vcpkg.cmake index 6a4c33e..bc37ed4 100644 --- a/pmm/vcpkg.cmake +++ b/pmm/vcpkg.cmake @@ -181,7 +181,7 @@ endfunction() function(_pmm_vcpkg) _pmm_parse_args( - REVISION TRIPLET - + REQUIRES PORTS + + REQUIRES PORTS OVERLAY_PORTS OVERLAY_TRIPLETS ) if(NOT DEFINED ARG_REVISION) @@ -202,6 +202,13 @@ function(_pmm_vcpkg) _pmm_vcpkg_copy_custom_ports("${ARG_PORTS}") endif() if(ARG_REQUIRES) + list(APPEND _PMM_OVERLAYS) + if(ARG_OVERLAY_PORTS) + list(APPEND _PMM_OVERLAYS "--overlay-ports=${ARG_OVERLAY_PORTS}") + endif() + if(ARG_OVERLAY_TRIPLETS) + list(APPEND _PMM_OVERLAYS "--overlay-triplets=${ARG_OVERLAY_TRIPLETS}") + endif() _pmm_log("Installing requirements with vcpkg") set(cmd ${CMAKE_COMMAND} -E env VCPKG_ROOT=${vcpkg_inst_dir} @@ -210,6 +217,7 @@ function(_pmm_vcpkg) "${PMM_VCPKG_EXECUTABLE}" install --triplet "${ARG_TRIPLET}" ${ARG_REQUIRES} + ${_PMM_OVERLAYS} ) _pmm_exec(${cmd} NO_EAT_OUTPUT) if(_PMM_RC) @@ -218,6 +226,12 @@ function(_pmm_vcpkg) _pmm_log(DEBUG "vcpkg output:\n${_PMM_OUTPUT}") endif() endif() - set(_PMM_INCLUDE "${vcpkg_inst_dir}/scripts/buildsystems/vcpkg.cmake" PARENT_SCOPE) - _pmm_generate_shim(vcpkg "${PMM_VCPKG_EXECUTABLE}") + get_property(__pmm_vcpkg_included GLOBAL PROPERTY pmm_VCPKG_INCLUDED) + if(NOT __pmm_vcpkg_included) + set_property(GLOBAL PROPERTY pmm_VCPKG_INCLUDED TRUE) + set(_PMM_INCLUDE "${vcpkg_inst_dir}/scripts/buildsystems/vcpkg.cmake" PARENT_SCOPE) + _pmm_generate_shim(vcpkg "${PMM_VCPKG_EXECUTABLE}") + else() + set(_PMM_INCLUDE "" PARENT_SCOPE) + endif() endfunction()