diff --git a/cmake/cmkr.cmake b/cmake/cmkr.cmake index b798654..1ed1435 100644 --- a/cmake/cmkr.cmake +++ b/cmake/cmkr.cmake @@ -69,7 +69,7 @@ set(CMKR_DIRECTORY "${CMKR_DIRECTORY_PREFIX}${CMKR_TAG}") set(CMKR_CACHED_EXECUTABLE "${CMKR_DIRECTORY}/bin/${CMKR_EXECUTABLE_NAME}") # Handle upgrading logic -if(CMKR_EXECUTABLE AND NOT CMKR_CACHED_EXECUTABLE STREQUAL CMKR_EXECUTABLE) +if(CMKR_EXECUTABLE AND NOT CMKR_CACHED_EXECUTABLE STREQUAL CMKR_EXECUTABLE) if(CMKR_EXECUTABLE MATCHES "^${CMAKE_CURRENT_BINARY_DIR}/_cmkr") if(DEFINED ENV{CMKR_CACHE} AND EXISTS "$ENV{CMKR_CACHE}") message(AUTHOR_WARNING "[cmkr] Switching to cached cmkr: '${CMKR_CACHED_EXECUTABLE}'") @@ -98,7 +98,7 @@ elseif(NOT CMKR_EXECUTABLE AND EXISTS "${CMKR_CACHED_EXECUTABLE}") else() set(CMKR_EXECUTABLE "${CMKR_CACHED_EXECUTABLE}" CACHE FILEPATH "Full path to cmkr executable" FORCE) message(VERBOSE "[cmkr] Bootstrapping '${CMKR_EXECUTABLE}'") - + message(STATUS "[cmkr] Fetching cmkr...") if(EXISTS "${CMKR_DIRECTORY}") cmkr_exec("${CMAKE_COMMAND}" -E rm -rf "${CMKR_DIRECTORY}") @@ -202,18 +202,18 @@ macro(cmkr) # Copy the now-generated CMakeLists.txt to CMakerLists.txt # This is done because you cannot include() a file you are currently in configure_file(CMakeLists.txt "${CMKR_TEMP_FILE}" COPYONLY) - + # Add the macro required for the hack at the start of the cmkr macro set_source_files_properties("${CMKR_TEMP_FILE}" PROPERTIES CMKR_CURRENT_LIST_FILE "${CMAKE_CURRENT_LIST_FILE}" ) - + # 'Execute' the newly-generated CMakeLists.txt include("${CMKR_TEMP_FILE}") - + # Delete the generated file file(REMOVE "${CMKR_TEMP_FILE}") - + # Do not execute the rest of the original CMakeLists.txt return() endif() diff --git a/src/cmake_generator.cpp b/src/cmake_generator.cpp index 1b4f994..2bbc1f9 100644 --- a/src/cmake_generator.cpp +++ b/src/cmake_generator.cpp @@ -604,11 +604,13 @@ void generate_cmake(const char *path, const parser::Project *parent_project) { if (!project.vcpkg.packages.empty()) { // Allow the user to specify a url or derive it from the version auto url = project.vcpkg.url; + auto version_name = url; if (url.empty()) { if (project.vcpkg.version.empty()) { throw std::runtime_error("You need either [vcpkg].version or [vcpkg].url"); } url = "https://github.com/microsoft/vcpkg/archive/refs/tags/" + project.vcpkg.version + ".tar.gz"; + version_name = project.vcpkg.version; } // Show a nicer error than vcpkg when specifying an invalid package name @@ -622,7 +624,7 @@ void generate_cmake(const char *path, const parser::Project *parent_project) { // clang-format off cmd("if")("CMKR_ROOT_PROJECT", "AND", "NOT", "CMKR_DISABLE_VCPKG"); cmd("include")("FetchContent"); - cmd("message")("STATUS", "Fetching vcpkg..."); + cmd("message")("STATUS", "Fetching vcpkg (" + version_name + ")..."); cmd("FetchContent_Declare")("vcpkg", "URL", url); cmd("FetchContent_MakeAvailable")("vcpkg"); cmd("include")("${vcpkg_SOURCE_DIR}/scripts/buildsystems/vcpkg.cmake");