2023-02-21 15:51:33 +01:00
|
|
|
require_relative './lib'
|
|
|
|
|
|
|
|
|
|
class SystemWarnings < IntegrationTest
|
|
|
|
|
|
2023-02-22 17:33:50 +01:00
|
|
|
def setup
|
|
|
|
|
# system is only supported for CMake >= 3.25
|
|
|
|
|
@system_supported = (!ENV['CMAKE_VERSION']) || (Gem::Version.new(ENV['CMAKE_VERSION']) >= Gem::Version.new('3.25'))
|
|
|
|
|
end
|
|
|
|
|
|
2023-02-21 15:51:33 +01:00
|
|
|
def test_dependency_added_using_system
|
|
|
|
|
for use_system in [true, false] do
|
|
|
|
|
prj = make_project name: use_system ? "system" : "no_system", from_template: 'using-adder'
|
|
|
|
|
prj.create_lists_from_default_template package: <<~PACK
|
|
|
|
|
# this commit has a warning in a public header
|
|
|
|
|
CPMAddPackage(
|
|
|
|
|
NAME Adder
|
|
|
|
|
GITHUB_REPOSITORY cpm-cmake/testpack-adder
|
|
|
|
|
GIT_TAG v1.0.1-warnings
|
|
|
|
|
SYSTEM #{use_system ? "YES" : "NO"}
|
|
|
|
|
)
|
|
|
|
|
# all packages using `adder` will error on warnings
|
|
|
|
|
target_compile_options(adder INTERFACE
|
|
|
|
|
$<$<CXX_COMPILER_ID:MSVC>:/Wall /WX>
|
|
|
|
|
$<$<NOT:$<CXX_COMPILER_ID:MSVC>>:-Wall -Werror>
|
|
|
|
|
)
|
|
|
|
|
PACK
|
|
|
|
|
|
|
|
|
|
assert_success prj.configure
|
2023-02-22 17:33:50 +01:00
|
|
|
if use_system and @system_supported
|
2023-02-21 15:51:33 +01:00
|
|
|
assert_success prj.build
|
|
|
|
|
else
|
|
|
|
|
assert_failure prj.build
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def test_dependency_added_implicitly_using_system
|
|
|
|
|
prj = make_project from_template: 'using-adder'
|
|
|
|
|
prj.create_lists_from_default_template package: <<~PACK
|
|
|
|
|
# this commit has a warning in a public header
|
|
|
|
|
CPMAddPackage("gh:cpm-cmake/testpack-adder@1.0.1-warnings")
|
|
|
|
|
# all packages using `adder` will error on warnings
|
|
|
|
|
target_compile_options(adder INTERFACE
|
|
|
|
|
$<$<CXX_COMPILER_ID:MSVC>:/Wall /WX>
|
|
|
|
|
$<$<NOT:$<CXX_COMPILER_ID:MSVC>>:-Wall -Werror>
|
|
|
|
|
)
|
|
|
|
|
PACK
|
|
|
|
|
|
|
|
|
|
assert_success prj.configure
|
2023-02-22 17:33:50 +01:00
|
|
|
if @system_supported
|
|
|
|
|
assert_success prj.build
|
|
|
|
|
else
|
|
|
|
|
assert_failure prj.build
|
|
|
|
|
end
|
2023-02-21 15:51:33 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|