<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>