diff --git a/llvm/unittests/Passes/CMakeLists.txt b/llvm/unittests/Passes/CMakeLists.txt --- a/llvm/unittests/Passes/CMakeLists.txt +++ b/llvm/unittests/Passes/CMakeLists.txt @@ -7,24 +7,30 @@ add_definitions(-DLLVM_ENABLE_PLUGINS) endif() -set(LLVM_LINK_COMPONENTS Support Passes Core) -add_llvm_unittest(PluginsTests - PluginsTest.cpp - ) -export_executable_symbols(PluginsTests) -target_link_libraries(PluginsTests PRIVATE LLVMTestingSupport) +# The plugin expects to not link against the Support and Core libraries, +# but expects them to exist in the process loading the plugin. This doesn't +# work with DLLs on Windows (where a shared library can't have undefined +# references), so just skip this testcase on Windows. +if (NOT WIN32) + set(LLVM_LINK_COMPONENTS Support Passes Core) + add_llvm_unittest(PluginsTests + PluginsTest.cpp + ) + export_executable_symbols(PluginsTests) + target_link_libraries(PluginsTests PRIVATE LLVMTestingSupport) -set(LLVM_LINK_COMPONENTS) -add_llvm_library(TestPlugin MODULE BUILDTREE_ONLY - TestPlugin.cpp - ) + set(LLVM_LINK_COMPONENTS) + add_llvm_library(TestPlugin MODULE BUILDTREE_ONLY + TestPlugin.cpp + ) -# Put plugin next to the unit test executable. -set_output_directory(TestPlugin - BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR} - LIBRARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR} - ) -set_target_properties(TestPlugin PROPERTIES FOLDER "Tests") + # Put plugin next to the unit test executable. + set_output_directory(TestPlugin + BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR} + LIBRARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR} + ) + set_target_properties(TestPlugin PROPERTIES FOLDER "Tests") -add_dependencies(TestPlugin intrinsics_gen) -add_dependencies(PluginsTests TestPlugin) + add_dependencies(TestPlugin intrinsics_gen) + add_dependencies(PluginsTests TestPlugin) +endif()