Skip to content

Commit

Permalink
feat: URI keyword also sets EXCLUDE_FROM AND SYSTEM
Browse files Browse the repository at this point in the history
  • Loading branch information
SGSSGene committed Dec 23, 2024
1 parent 72e98e7 commit 1cb8a5a
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 1 deletion.
2 changes: 1 addition & 1 deletion cmake/CPM.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -626,7 +626,7 @@ function(CPMAddPackage)
list(REMOVE_AT ARGN 0 1) # remove "URI gh:<...>@version#tag"
cpm_parse_add_package_single_arg("${ARGV1}" ARGV0)

set(ARGN "${ARGV0};${ARGN}")
set(ARGN "${ARGV0};EXCLUDE_FROM_ALL;YES;SYSTEM;YES;${ARGN}")
endif()

cmake_parse_arguments(CPM_ARGS "" "${oneValueArgs}" "${multiValueArgs}" "${ARGN}")
Expand Down
30 changes: 30 additions & 0 deletions test/integration/test_simple.rb
Original file line number Diff line number Diff line change
Expand Up @@ -110,12 +110,42 @@ def test_update_single_package
# * using-adder - for this project
# ...and notably no test for adder, which must be disabled from the option override from above
assert_equal ['simple', 'using-adder'], exes
}
update_with_option_on_and_build_with_uri_shorthand_syntax_and_exclude_from_override = -> {
prj.create_lists_from_default_template package: <<~PACK
CPMAddPackage(
URI gh:cpm-cmake/[email protected]
OPTIONS "ADDER_BUILD_TESTS ON"
EXCLUDE_FROM_ALL NO
)
PACK
assert_success prj.configure
assert_success prj.build

exe_dir = File.join(prj.bin_dir, 'bin')
assert File.directory? exe_dir

exes = Dir[exe_dir + '/**/*'].filter {
# on multi-configuration generators (like Visual Studio) the executables will be in bin/<Config>
# also filter-out other artifacts like .pdb or .dsym
!File.directory?(_1) && File.stat(_1).executable?
}.map {
# remove .exe extension if any (there will be one on Windows)
File.basename(_1, '.exe')
}.sort

# we should end up with two executables
# * simple - the simple example from adder
# * using-adder - for this project
# ...and notably no test for adder, which must be disabled from the option override from above
assert_equal ['simple', 'test-adding', 'using-adder'], exes
}


create_with_commit_sha.()
update_to_version_1.()
update_with_option_off_and_build.()
update_with_option_off_and_build_with_uri_shorthand_syntax.()
update_with_option_on_and_build_with_uri_shorthand_syntax_and_exclude_from_override.()
end
end

0 comments on commit 1cb8a5a

Please sign in to comment.