diff options
| author | William R. Dieter <william.r.dieter@intel.com> | 2022-06-24 21:46:19 -0700 |
|---|---|---|
| committer | William R. Dieter <william.r.dieter@intel.com> | 2022-08-01 19:34:49 -0400 |
| commit | 3640842df23de476506d1529caf1736052dbcb38 (patch) | |
| tree | 7d25e7f5512177924e05fcc64404133f93476668 /Tests/ModuleDefinition | |
| parent | 5d5a7123034361b6cacff96d3ed20d2bb78c33cc (diff) | |
| download | cmake-3640842df23de476506d1529caf1736052dbcb38.tar.gz | |
Tests: Update ModuleDefinition for IntelLLVM MSVC Frontend Variant
IntelLLVM for MSVC uses the compiler for linking. The /DEF flag needs
to be passed to the linker, and the compiler does not accept it, unless
it is prefixed with `/Qoption,link,`.
Rather than explicitly set the LINK_FLAGS target property, as is done
for other MSVC frontend variants, add the .def file to the sources
for `add_library`. `add_library` will wrap the `/DEF` flag using
`CMAKE_${lang}_LINKER_WRAPPER_FLAG`. Presumably, this should work
for any MSVC front end, but leave the original test to avoid changing
a test that is working.
Signed-off-by: William R. Dieter <william.r.dieter@intel.com>
Diffstat (limited to 'Tests/ModuleDefinition')
| -rw-r--r-- | Tests/ModuleDefinition/CMakeLists.txt | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/Tests/ModuleDefinition/CMakeLists.txt b/Tests/ModuleDefinition/CMakeLists.txt index 567fb4b9f8..483bd8b219 100644 --- a/Tests/ModuleDefinition/CMakeLists.txt +++ b/Tests/ModuleDefinition/CMakeLists.txt @@ -15,7 +15,17 @@ add_custom_command(OUTPUT example_dll_gen.def add_library(example_dll_gen SHARED example_dll_gen.c example_dll_gen.def) # Test /DEF:<file> flag recognition for VS. -if(MSVC OR CMAKE_C_COMPILER_ID STREQUAL "Intel") +if(MSVC AND CMAKE_C_COMPILER_ID STREQUAL "IntelLLVM") + # IntelLLVM for MSVC frontend variant needs the /DEF flag wrapped to be sent + # to the linker, which happens automatically when the DEF file is added + # to the sources. + add_library(example_dll_2 SHARED + example_dll_2.c + "${ModuleDefinition_SOURCE_DIR}/example_dll_2.def" + ) + set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS EXAMPLE_DLL_2) + set(example_dll_2 example_dll_2) +elseif(MSVC OR CMAKE_C_COMPILER_ID STREQUAL "Intel") add_library(example_dll_2 SHARED example_dll_2.c) set_property(TARGET example_dll_2 PROPERTY LINK_FLAGS /DEF:"${ModuleDefinition_SOURCE_DIR}/example_dll_2.def") |
