From 775a235880b9c30ca988a93b088bdb11642f08dd Mon Sep 17 00:00:00 2001 From: Lars Melchior Date: Thu, 6 Feb 2020 11:50:55 +0100 Subject: [PATCH] default to "ON" for options without explicit value definition (#96) * default to "ON" for options without explicit value definition * increment CPM version * compare the correct lengths --- cmake/CPM.cmake | 12 +++++++++--- examples/gtest/CMakeLists.txt | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/cmake/CPM.cmake b/cmake/CPM.cmake index a6e9301..6b787ef 100644 --- a/cmake/CPM.cmake +++ b/cmake/CPM.cmake @@ -28,7 +28,7 @@ cmake_minimum_required(VERSION 3.14 FATAL_ERROR) -set(CURRENT_CPM_VERSION 0.15.1) +set(CURRENT_CPM_VERSION 0.16) if(CPM_DIRECTORY) if(NOT ${CPM_DIRECTORY} MATCHES ${CMAKE_CURRENT_LIST_DIR}) @@ -303,9 +303,15 @@ endfunction() # splits a package option function(cpm_parse_option OPTION) string(REGEX MATCH "^[^ ]+" OPTION_KEY ${OPTION}) + string(LENGTH ${OPTION} OPTION_LENGTH) string(LENGTH ${OPTION_KEY} OPTION_KEY_LENGTH) - math(EXPR OPTION_KEY_LENGTH "${OPTION_KEY_LENGTH}+1") - string(SUBSTRING ${OPTION} "${OPTION_KEY_LENGTH}" "-1" OPTION_VALUE) + if (OPTION_KEY_LENGTH STREQUAL OPTION_LENGTH) + # no value for key provided, assume user wants to set option to "ON" + set(OPTION_VALUE "ON") + else() + math(EXPR OPTION_KEY_LENGTH "${OPTION_KEY_LENGTH}+1") + string(SUBSTRING ${OPTION} "${OPTION_KEY_LENGTH}" "-1" OPTION_VALUE) + endif() set(OPTION_KEY "${OPTION_KEY}" PARENT_SCOPE) set(OPTION_VALUE "${OPTION_VALUE}" PARENT_SCOPE) endfunction() diff --git a/examples/gtest/CMakeLists.txt b/examples/gtest/CMakeLists.txt index 2f82742..32ed2a7 100644 --- a/examples/gtest/CMakeLists.txt +++ b/examples/gtest/CMakeLists.txt @@ -23,7 +23,7 @@ CPMAddPackage( VERSION 1.8.1 OPTIONS "INSTALL_GTEST OFF" - "gtest_force_shared_crt ON" + "gtest_force_shared_crt" ) # ---- Create binary ----