From: Michael Kuperstein Date: Wed, 29 Oct 2014 09:18:49 +0000 (+0000) Subject: Fix build with CMake if LLVM_USE_INTEL_JITEVENTS option is enabled X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f9c34803226f83211403440b2b8b28a7778f168f;p=platform%2Fupstream%2Fllvm.git Fix build with CMake if LLVM_USE_INTEL_JITEVENTS option is enabled * Added LLVM libraries required for IntelJITEvents to LLVMBuild.txt. * Removed 'jit' library from llvm-jitlistener. * Added support for OptionalLibraries to llvm-build cmake files generator. Patch by aleksey.a.bader@intel.com Differential Revision: http://reviews.llvm.org/D5646 llvm-svn: 220848 --- diff --git a/llvm/lib/ExecutionEngine/IntelJITEvents/LLVMBuild.txt b/llvm/lib/ExecutionEngine/IntelJITEvents/LLVMBuild.txt index 9c06fda..e36493e 100644 --- a/llvm/lib/ExecutionEngine/IntelJITEvents/LLVMBuild.txt +++ b/llvm/lib/ExecutionEngine/IntelJITEvents/LLVMBuild.txt @@ -21,3 +21,4 @@ type = OptionalLibrary name = IntelJITEvents parent = ExecutionEngine +required_libraries = Core DebugInfo Support diff --git a/llvm/tools/llvm-jitlistener/CMakeLists.txt b/llvm/tools/llvm-jitlistener/CMakeLists.txt index 5d12459..68a4303 100644 --- a/llvm/tools/llvm-jitlistener/CMakeLists.txt +++ b/llvm/tools/llvm-jitlistener/CMakeLists.txt @@ -10,7 +10,6 @@ set(LLVM_LINK_COMPONENTS inteljitevents interpreter irreader - jit mcjit nativecodegen object diff --git a/llvm/utils/llvm-build/llvmbuild/main.py b/llvm/utils/llvm-build/llvmbuild/main.py index 5ffed0c..36c7d53 100644 --- a/llvm/utils/llvm-build/llvmbuild/main.py +++ b/llvm/utils/llvm-build/llvmbuild/main.py @@ -41,7 +41,7 @@ def mk_quote_string_for_target(value): """ mk_quote_string_for_target(target_name) -> str - Return a quoted form of the given target_name suitable for including in a + Return a quoted form of the given target_name suitable for including in a Makefile as a target name. """ @@ -340,7 +340,7 @@ subdirectories = %s # Compute the llvm-config "component name". For historical reasons, # this is lowercased based on the library name. llvmconfig_component_name = c.get_llvmconfig_component_name() - + # Get the library name, or None for LibraryGroups. if c.type_name == 'Library' or c.type_name == 'OptionalLibrary': library_name = c.get_prefixed_library_name() @@ -430,14 +430,14 @@ subdirectories = %s traversed to include their required libraries. """ - assert ci.type_name in ('Library', 'LibraryGroup', 'TargetGroup') + assert ci.type_name in ('Library', 'OptionalLibrary', 'LibraryGroup', 'TargetGroup') for name in ci.required_libraries: # Get the dependency info. dep = self.component_info_map[name] # If it is a library, yield it. - if dep.type_name == 'Library': + if dep.type_name == 'Library' or dep.type_name == 'OptionalLibrary': yield dep continue @@ -492,7 +492,7 @@ subdirectories = %s if (path.startswith(self.source_root) and os.path.exists(path)): yield path - def write_cmake_fragment(self, output_path): + def write_cmake_fragment(self, output_path, enabled_optional_components): """ write_cmake_fragment(output_path) -> None @@ -561,8 +561,13 @@ configure_file(\"%s\" # names to required libraries, in a way that is easily accessed from CMake. """) for ci in self.ordered_component_infos: - # We only write the information for libraries currently. - if ci.type_name != 'Library': + # Skip optional components which are not enabled. + if ci.type_name == 'OptionalLibrary' \ + and ci.name not in enabled_optional_components: + continue + + # We only write the information for certain components currently. + if ci.type_name not in ('Library', 'OptionalLibrary'): continue f.write("""\ @@ -573,7 +578,7 @@ set_property(GLOBAL PROPERTY LLVMBUILD_LIB_DEPS_%s %s)\n""" % ( f.close() - def write_cmake_exports_fragment(self, output_path): + def write_cmake_exports_fragment(self, output_path, enabled_optional_components): """ write_cmake_exports_fragment(output_path) -> None @@ -595,8 +600,13 @@ set_property(GLOBAL PROPERTY LLVMBUILD_LIB_DEPS_%s %s)\n""" % ( # dependencies of libraries imported from LLVM. """) for ci in self.ordered_component_infos: + # Skip optional components which are not enabled. + if ci.type_name == 'OptionalLibrary' \ + and ci.name not in enabled_optional_components: + continue + # We only write the information for libraries currently. - if ci.type_name != 'Library': + if ci.type_name not in ('Library', 'OptionalLibrary'): continue # Skip disabled targets. @@ -905,9 +915,11 @@ given by --build-root) at the same SUBPATH""", # Write out the cmake fragment, if requested. if opts.write_cmake_fragment: - project_info.write_cmake_fragment(opts.write_cmake_fragment) + project_info.write_cmake_fragment(opts.write_cmake_fragment, + opts.optional_components) if opts.write_cmake_exports_fragment: - project_info.write_cmake_exports_fragment(opts.write_cmake_exports_fragment) + project_info.write_cmake_exports_fragment(opts.write_cmake_exports_fragment, + opts.optional_components) # Configure target definition files, if requested. if opts.configure_target_def_files: