mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-02 03:39:43 -06:00
Tests: Add RunCMake.CPackCommandLine case for multi-config package
In commit da5ac4bb60 (cpack: Add `CPACK_INSTALL_CMAKE_CONFIGURATIONS`
variable, 2019-07-10, v3.16.0-rc1~165^2) we added support for running
the `cpack -C ...` command-line with multiple configurations. Add an
explicit test for this.
Fixes: #19918
This commit is contained in:
3
Tests/RunCMake/CPackCommandLine/CMakeLists.txt
Normal file
3
Tests/RunCMake/CPackCommandLine/CMakeLists.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
project(${RunCMake_TEST} NONE)
|
||||
include(${RunCMake_TEST}.cmake)
|
||||
@@ -0,0 +1,4 @@
|
||||
MultiConfig-0\.1\.1-[^/
|
||||
]*/lib/(lib|)foo_dbg\.(a|lib)
|
||||
MultiConfig-0\.1\.1-[^/
|
||||
]*/lib/(lib|)foo_rel\.(a|lib)
|
||||
@@ -0,0 +1,8 @@
|
||||
^CPack: Create package using ZIP
|
||||
CPack: Install projects
|
||||
CPack: - Install project: MultiConfig \[Debug\]
|
||||
CPack: - Install project: MultiConfig \[Release\]
|
||||
CPack: Create package
|
||||
CPack: - package: [^
|
||||
]*/Tests/RunCMake/CPackCommandLine/MultiConfig-build/MultiConfig-0.1.1-[^
|
||||
]*.zip generated.$
|
||||
9
Tests/RunCMake/CPackCommandLine/MultiConfig.cmake
Normal file
9
Tests/RunCMake/CPackCommandLine/MultiConfig.cmake
Normal file
@@ -0,0 +1,9 @@
|
||||
enable_language(C)
|
||||
|
||||
include(CPack)
|
||||
|
||||
add_library(foo foo.c)
|
||||
set_property(TARGET foo PROPERTY DEBUG_POSTFIX _dbg)
|
||||
set_property(TARGET foo PROPERTY RELEASE_POSTFIX _rel)
|
||||
|
||||
install(TARGETS foo)
|
||||
@@ -8,3 +8,26 @@ set(CPACK_PACKAGE_VERSION "1")
|
||||
set(RunCMake_TEST_NO_CLEAN 1)
|
||||
run_cmake_command(NotAGenerator ${CMAKE_CPACK_COMMAND} -G NotAGenerator)
|
||||
unset(RunCMake_TEST_NO_CLEAN)
|
||||
|
||||
function(run_MultiConfig)
|
||||
set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/MultiConfig-build")
|
||||
run_cmake(MultiConfig)
|
||||
set(RunCMake_TEST_NO_CLEAN 1)
|
||||
run_cmake_command(MultiConfig-build-dbg ${CMAKE_COMMAND} --build . --config Debug)
|
||||
run_cmake_command(MultiConfig-build-rel ${CMAKE_COMMAND} --build . --config Release)
|
||||
run_cmake_command(MultiConfig-package ${CMAKE_CPACK_COMMAND} -G ZIP -C "Debug\;Release")
|
||||
set(zip_glob "${RunCMake_TEST_BINARY_DIR}/MultiConfig-0.1.1-*.zip")
|
||||
file(GLOB zips "${zip_glob}")
|
||||
set(zip_found 0)
|
||||
foreach(zip IN LISTS zips)
|
||||
set(zip_found 1)
|
||||
run_cmake_command(MultiConfig-check ${CMAKE_COMMAND} -E tar tf "${zip}")
|
||||
endforeach()
|
||||
if(NOT zip_found)
|
||||
message(SEND_ERROR "No package file found at\n ${zip_glob}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
if(RunCMake_GENERATOR MATCHES "Visual Studio|Xcode")
|
||||
run_MultiConfig()
|
||||
endif()
|
||||
|
||||
4
Tests/RunCMake/CPackCommandLine/foo.c
Normal file
4
Tests/RunCMake/CPackCommandLine/foo.c
Normal file
@@ -0,0 +1,4 @@
|
||||
int foo(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user