[CMake] Fix building with -DBUILD_SHARED_LIBS=ON on mingw
authorMartin Storsjö <martin@martin.st>
Mon, 11 May 2020 20:41:08 +0000 (23:41 +0300)
committerMartin Storsjö <martin@martin.st>
Mon, 11 May 2020 20:51:14 +0000 (23:51 +0300)
Set the right target name in clang/examples/Attribute.

Add a missing dependency in the TableGen GlobalISel sublibrary.

Skip building the Bye pass plugin example on windows; plugins
that should have undefined symbols that are found in the host
process aren't supported on windows - this matches what was done
for a unit test in bc8e44218810c0db6328b9809c959ceb7d43e3f5.

clang/examples/Attribute/CMakeLists.txt
llvm/examples/Bye/CMakeLists.txt
llvm/utils/TableGen/GlobalISel/CMakeLists.txt

index 19323bb..ed02f5e 100644 (file)
@@ -1,7 +1,7 @@
 add_llvm_library(Attribute MODULE Attribute.cpp PLUGIN_TOOL clang)
 
 if(LLVM_ENABLE_PLUGINS AND (WIN32 OR CYGWIN))
-  target_link_libraries(AnnotateFunctions ${cmake_2_8_12_PRIVATE}
+  target_link_libraries(Attribute ${cmake_2_8_12_PRIVATE}
     clangAST
     clangBasic
     clangFrontend
index 3206f90..362086e 100644 (file)
@@ -2,12 +2,18 @@ if(LLVM_BYE_LINK_INTO_TOOLS)
   message(WARNING "Setting LLVM_BYE_LINK_INTO_TOOLS=ON only makes sense for testing purpose")
 endif()
 
-add_llvm_pass_plugin(Bye
-  Bye.cpp
-  DEPENDS
-  intrinsics_gen
-  BUILDTREE_ONLY
- )
+# 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)
+  add_llvm_pass_plugin(Bye
+    Bye.cpp
+    DEPENDS
+    intrinsics_gen
+    BUILDTREE_ONLY
+   )
 
-install(TARGETS ${name} RUNTIME DESTINATION examples)
-set_target_properties(${name} PROPERTIES FOLDER "Examples")
+  install(TARGETS ${name} RUNTIME DESTINATION examples)
+  set_target_properties(${name} PROPERTIES FOLDER "Examples")
+endif()
index 292a1bd..25fff72 100644 (file)
@@ -1,5 +1,6 @@
 set(LLVM_LINK_COMPONENTS
   Support
+  TableGen
   )
 
 llvm_add_library(LLVMTableGenGlobalISel STATIC DISABLE_LLVM_LINK_LLVM_DYLIB