<div dir="ltr">Thanks very much Michael!<div><br></div><div>- Lang.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 29, 2014 at 2:18 AM, Michael Kuperstein <span dir="ltr"><<a href="mailto:michael.m.kuperstein@intel.com" target="_blank">michael.m.kuperstein@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: mkuper<br>
Date: Wed Oct 29 04:18:49 2014<br>
New Revision: 220848<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=220848&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=220848&view=rev</a><br>
Log:<br>
Fix build with CMake if LLVM_USE_INTEL_JITEVENTS option is enabled<br>
<br>
* Added LLVM libraries required for IntelJITEvents to LLVMBuild.txt.<br>
* Removed 'jit' library from llvm-jitlistener.<br>
* Added support for OptionalLibraries to llvm-build cmake files generator.<br>
<br>
Patch by <a href="mailto:aleksey.a.bader@intel.com">aleksey.a.bader@intel.com</a><br>
<br>
Differential Revision: <a href="http://reviews.llvm.org/D5646" target="_blank">http://reviews.llvm.org/D5646</a><br>
<br>
Modified:<br>
    llvm/trunk/lib/ExecutionEngine/IntelJITEvents/LLVMBuild.txt<br>
    llvm/trunk/tools/llvm-jitlistener/CMakeLists.txt<br>
    llvm/trunk/utils/llvm-build/llvmbuild/main.py<br>
<br>
Modified: llvm/trunk/lib/ExecutionEngine/IntelJITEvents/LLVMBuild.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/IntelJITEvents/LLVMBuild.txt?rev=220848&r1=220847&r2=220848&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/IntelJITEvents/LLVMBuild.txt?rev=220848&r1=220847&r2=220848&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/ExecutionEngine/IntelJITEvents/LLVMBuild.txt (original)<br>
+++ llvm/trunk/lib/ExecutionEngine/IntelJITEvents/LLVMBuild.txt Wed Oct 29 04:18:49 2014<br>
@@ -21,3 +21,4 @@<br>
 type = OptionalLibrary<br>
 name = IntelJITEvents<br>
 parent = ExecutionEngine<br>
+required_libraries = Core DebugInfo Support<br>
<br>
Modified: llvm/trunk/tools/llvm-jitlistener/CMakeLists.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-jitlistener/CMakeLists.txt?rev=220848&r1=220847&r2=220848&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-jitlistener/CMakeLists.txt?rev=220848&r1=220847&r2=220848&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/tools/llvm-jitlistener/CMakeLists.txt (original)<br>
+++ llvm/trunk/tools/llvm-jitlistener/CMakeLists.txt Wed Oct 29 04:18:49 2014<br>
@@ -10,7 +10,6 @@ set(LLVM_LINK_COMPONENTS<br>
   inteljitevents<br>
   interpreter<br>
   irreader<br>
-  jit<br>
   mcjit<br>
   nativecodegen<br>
   object<br>
<br>
Modified: llvm/trunk/utils/llvm-build/llvmbuild/main.py<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/llvm-build/llvmbuild/main.py?rev=220848&r1=220847&r2=220848&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/llvm-build/llvmbuild/main.py?rev=220848&r1=220847&r2=220848&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/utils/llvm-build/llvmbuild/main.py (original)<br>
+++ llvm/trunk/utils/llvm-build/llvmbuild/main.py Wed Oct 29 04:18:49 2014<br>
@@ -41,7 +41,7 @@ def mk_quote_string_for_target(value):<br>
     """<br>
     mk_quote_string_for_target(target_name) -> str<br>
<br>
-    Return a quoted form of the given target_name suitable for including in a<br>
+    Return a quoted form of the given target_name suitable for including in a<br>
     Makefile as a target name.<br>
     """<br>
<br>
@@ -340,7 +340,7 @@ subdirectories = %s<br>
             # Compute the llvm-config "component name". For historical reasons,<br>
             # this is lowercased based on the library name.<br>
             llvmconfig_component_name = c.get_llvmconfig_component_name()<br>
-<br>
+<br>
             # Get the library name, or None for LibraryGroups.<br>
             if c.type_name == 'Library' or c.type_name == 'OptionalLibrary':<br>
                 library_name = c.get_prefixed_library_name()<br>
@@ -430,14 +430,14 @@ subdirectories = %s<br>
         traversed to include their required libraries.<br>
         """<br>
<br>
-        assert ci.type_name in ('Library', 'LibraryGroup', 'TargetGroup')<br>
+        assert ci.type_name in ('Library', 'OptionalLibrary', 'LibraryGroup', 'TargetGroup')<br>
<br>
         for name in ci.required_libraries:<br>
             # Get the dependency info.<br>
             dep = self.component_info_map[name]<br>
<br>
             # If it is a library, yield it.<br>
-            if dep.type_name == 'Library':<br>
+            if dep.type_name == 'Library' or dep.type_name == 'OptionalLibrary':<br>
                 yield dep<br>
                 continue<br>
<br>
@@ -492,7 +492,7 @@ subdirectories = %s<br>
             if (path.startswith(self.source_root) and os.path.exists(path)):<br>
                 yield path<br>
<br>
-    def write_cmake_fragment(self, output_path):<br>
+    def write_cmake_fragment(self, output_path, enabled_optional_components):<br>
         """<br>
         write_cmake_fragment(output_path) -> None<br>
<br>
@@ -561,8 +561,13 @@ configure_file(\"%s\"<br>
 # names to required libraries, in a way that is easily accessed from CMake.<br>
 """)<br>
         for ci in self.ordered_component_infos:<br>
-            # We only write the information for libraries currently.<br>
-            if ci.type_name != 'Library':<br>
+            # Skip optional components which are not enabled.<br>
+            if ci.type_name == 'OptionalLibrary' \<br>
+                and <a href="http://ci.name" target="_blank">ci.name</a> not in enabled_optional_components:<br>
+                continue<br>
+<br>
+            # We only write the information for certain components currently.<br>
+            if ci.type_name not in ('Library', 'OptionalLibrary'):<br>
                 continue<br>
<br>
             f.write("""\<br>
@@ -573,7 +578,7 @@ set_property(GLOBAL PROPERTY LLVMBUILD_L<br>
<br>
         f.close()<br>
<br>
-    def write_cmake_exports_fragment(self, output_path):<br>
+    def write_cmake_exports_fragment(self, output_path, enabled_optional_components):<br>
         """<br>
         write_cmake_exports_fragment(output_path) -> None<br>
<br>
@@ -595,8 +600,13 @@ set_property(GLOBAL PROPERTY LLVMBUILD_L<br>
 # dependencies of libraries imported from LLVM.<br>
 """)<br>
         for ci in self.ordered_component_infos:<br>
+            # Skip optional components which are not enabled.<br>
+            if ci.type_name == 'OptionalLibrary' \<br>
+                and <a href="http://ci.name" target="_blank">ci.name</a> not in enabled_optional_components:<br>
+                continue<br>
+<br>
             # We only write the information for libraries currently.<br>
-            if ci.type_name != 'Library':<br>
+            if ci.type_name not in ('Library', 'OptionalLibrary'):<br>
                 continue<br>
<br>
             # Skip disabled targets.<br>
@@ -905,9 +915,11 @@ given by --build-root) at the same SUBPA<br>
<br>
     # Write out the cmake fragment, if requested.<br>
     if opts.write_cmake_fragment:<br>
-        project_info.write_cmake_fragment(opts.write_cmake_fragment)<br>
+        project_info.write_cmake_fragment(opts.write_cmake_fragment,<br>
+                                          opts.optional_components)<br>
     if opts.write_cmake_exports_fragment:<br>
-        project_info.write_cmake_exports_fragment(opts.write_cmake_exports_fragment)<br>
+        project_info.write_cmake_exports_fragment(opts.write_cmake_exports_fragment,<br>
+                                                  opts.optional_components)<br>
<br>
     # Configure target definition files, if requested.<br>
     if opts.configure_target_def_files:<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>