From 887086dc05fafb826389064a8ee189f1f2c9dfcf Mon Sep 17 00:00:00 2001 From: Duncan Ogilvie Date: Wed, 23 Feb 2022 21:32:58 +0100 Subject: [PATCH 1/3] Credits --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b7a6bbe..bd87814 100644 --- a/README.md +++ b/README.md @@ -69,3 +69,4 @@ arguments: - https://github.com/ToruNiina/toml11 - https://github.com/mpark/variant - https://www.svgrepo.com/svg/192268/hammer +- https://github.com/can1357 for buying `cmkr.build` ❤️ From 9b0f18ee94300b697f934b4991cb209b0f59d45b Mon Sep 17 00:00:00 2001 From: Duncan Ogilvie Date: Sun, 6 Mar 2022 06:05:17 +0100 Subject: [PATCH 2/3] Fix a bug in fetch-content generation --- src/cmake_generator.cpp | 6 +----- src/project_parser.cpp | 7 +++++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/cmake_generator.cpp b/src/cmake_generator.cpp index 42072b8..e15eb54 100644 --- a/src/cmake_generator.cpp +++ b/src/cmake_generator.cpp @@ -718,11 +718,7 @@ void generate_cmake(const char *path, const parser::Project *parent_project) { version_info = " (" + content.arguments.at("SVN_REVISION") + ")"; } cmd("message")("STATUS", "Fetching " + content.name + version_info + "..."); - ss << "FetchContent_Declare(\n\t" << content.name << "\n"; - for (const auto &arg : content.arguments) { - ss << "\t" << arg.first << "\n\t\t" << arg.second << "\n"; - } - ss << ")\n"; + cmd("FetchContent_Declare")(content.name, content.arguments); cmd("FetchContent_MakeAvailable")(content.name).endl(); gen.conditional_includes(content.include_after); diff --git a/src/project_parser.cpp b/src/project_parser.cpp index d466c0c..380a723 100644 --- a/src/project_parser.cpp +++ b/src/project_parser.cpp @@ -426,9 +426,12 @@ Project::Project(const Project *parent, const std::string &path, bool build) { throw std::runtime_error(format_key_error("Unknown key '" + argItr.first + "'", argItr.first, argItr.second)); } - c.visit(argItr.first); + // Make sure not to emit keys like "condition" in the FetchContent call + if (!c.visisted(key)) { + content.arguments.emplace(key, value); + } - content.arguments.emplace(key, value); + c.visit(argItr.first); } contents.emplace_back(std::move(content)); } From 1596a8143dc9a87c12f031d7d84f4a038acce4b3 Mon Sep 17 00:00:00 2001 From: Duncan Ogilvie Date: Sun, 6 Mar 2022 06:07:55 +0100 Subject: [PATCH 3/3] Bump to 0.2.12 --- CMakeLists.txt | 2 +- cmake.toml | 2 +- cmake/bump_version.cmake | 2 +- cmake/cmkr.cmake | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9cbf7d0..6c95813 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,7 +25,7 @@ project(cmkr LANGUAGES CXX VERSION - 0.2.11 + 0.2.12 DESCRIPTION "CMakeLists generator from TOML" ) diff --git a/cmake.toml b/cmake.toml index afcff76..f3bb73e 100644 --- a/cmake.toml +++ b/cmake.toml @@ -4,7 +4,7 @@ cmkr-include = false [project] name = "cmkr" -version = "0.2.11" +version = "0.2.12" description = "CMakeLists generator from TOML" languages = ["CXX"] subdirs = ["third_party", "tests"] diff --git a/cmake/bump_version.cmake b/cmake/bump_version.cmake index e62ef73..358a183 100644 --- a/cmake/bump_version.cmake +++ b/cmake/bump_version.cmake @@ -46,7 +46,7 @@ endif() message(STATUS "Version ${OLDVERSION} -> ${NEWVERSION}") -find_program(CMKR_EXECUTABLE "cmkr" PATHS "${CMAKE_SOURCE_DIR}/build" NO_CACHE REQUIRED) +find_program(CMKR_EXECUTABLE "cmkr" PATHS "${CMAKE_SOURCE_DIR}/build" PATH_SUFFIXES Debug Release RelWithDebInfo MinSizeRel NO_CACHE REQUIRED) message(STATUS "Found cmkr: ${CMKR_EXECUTABLE}") # Replace version in cmake.toml diff --git a/cmake/cmkr.cmake b/cmake/cmkr.cmake index 0e1fc6f..9af0802 100644 --- a/cmake/cmkr.cmake +++ b/cmake/cmkr.cmake @@ -2,7 +2,7 @@ include_guard() # Change these defaults to point to your infrastructure if desired set(CMKR_REPO "https://github.com/build-cpp/cmkr" CACHE STRING "cmkr git repository" FORCE) -set(CMKR_TAG "v0.2.11" CACHE STRING "cmkr git tag (this needs to be available forever)" FORCE) +set(CMKR_TAG "v0.2.12" CACHE STRING "cmkr git tag (this needs to be available forever)" FORCE) set(CMKR_COMMIT_HASH "" CACHE STRING "cmkr git commit hash (optional)" FORCE) # To bootstrap/generate a cmkr project: cmake -P cmkr.cmake