Tests/CXXModules: test Visual Studio synthetic target error
This commit is contained in:
parent
badb6ab120
commit
17fd7fe2ae
@ -95,7 +95,7 @@ if (RunCMake_GENERATOR MATCHES "Ninja")
|
||||
run_cmake(NinjaDependInfoExport)
|
||||
run_cmake(NinjaDependInfoBMIInstall)
|
||||
elseif (RunCMake_GENERATOR MATCHES "Visual Studio")
|
||||
# Not supported yet.
|
||||
run_cmake(VisualStudioNoSyntheticTargets)
|
||||
else ()
|
||||
message(FATAL_ERROR
|
||||
"Please add 'DependInfo' tests for the '${RunCMake_GENERATOR}' generator.")
|
||||
|
@ -0,0 +1 @@
|
||||
1
|
@ -0,0 +1,6 @@
|
||||
^(CMake Error in CMakeLists.txt:
|
||||
Target "imported-cxx-modules@synth_[0-9a-f]+" contains C\+\+ modules
|
||||
intended for BMI-only compilation. This is not yet supported by the Visual
|
||||
Studio generator.
|
||||
*
|
||||
)+CMake Generate step failed. Build files cannot be regenerated correctly.
|
@ -0,0 +1,27 @@
|
||||
enable_language(CXX)
|
||||
|
||||
if (NOT CMAKE_GENERATOR MATCHES "Visual Studio")
|
||||
message(FATAL_ERROR
|
||||
"This test requires a 'Visual Studio' generator to be used.")
|
||||
endif ()
|
||||
|
||||
add_library(imported-cxx-modules IMPORTED INTERFACE)
|
||||
target_sources(imported-cxx-modules
|
||||
INTERFACE
|
||||
FILE_SET modules TYPE CXX_MODULES
|
||||
BASE_DIRS
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/sources"
|
||||
FILES
|
||||
sources/module-simple.cxx)
|
||||
set_target_properties(imported-cxx-modules PROPERTIES
|
||||
IMPORTED_CONFIGURATIONS DEBUG
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX"
|
||||
IMPORTED_CXX_MODULES_COMPILE_FEATURES "cxx_std_20"
|
||||
INTERFACE_COMPILE_FEATURES "cxx_std_20"
|
||||
IMPORTED_CXX_MODULES_DEBUG "simple=${CMAKE_CURRENT_SOURCE_DIR}/sources/module-simple.cxx")
|
||||
|
||||
add_executable(vs-use-imported-cxx-modules
|
||||
sources/module-simple-use.cxx)
|
||||
target_link_libraries(vs-use-imported-cxx-modules
|
||||
PRIVATE
|
||||
imported-cxx-modules)
|
6
Tests/RunCMake/CXXModules/sources/module-simple-use.cxx
Normal file
6
Tests/RunCMake/CXXModules/sources/module-simple-use.cxx
Normal file
@ -0,0 +1,6 @@
|
||||
import simple;
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
return g();
|
||||
}
|
6
Tests/RunCMake/CXXModules/sources/module-simple.cxx
Normal file
6
Tests/RunCMake/CXXModules/sources/module-simple.cxx
Normal file
@ -0,0 +1,6 @@
|
||||
export module simple;
|
||||
|
||||
int g()
|
||||
{
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user