diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -1131,7 +1131,7 @@ # Installing the headers needs to depend on generating any public # tablegen'd headers. - add_custom_target(llvm-headers DEPENDS intrinsics_gen) + add_custom_target(llvm-headers DEPENDS intrinsics_gen omp_gen) set_target_properties(llvm-headers PROPERTIES FOLDER "Misc") if (NOT LLVM_ENABLE_IDE) diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake --- a/llvm/cmake/modules/AddLLVM.cmake +++ b/llvm/cmake/modules/AddLLVM.cmake @@ -925,6 +925,9 @@ if (TARGET intrinsics_gen) add_dependencies(obj.${name} intrinsics_gen) endif() + if (TARGET omp_gen) + add_dependencies(obj.${name} omp_gen) + endif() set_property(GLOBAL APPEND PROPERTY LLVM_STATIC_EXTENSIONS ${name}) elseif(NOT ARG_NO_MODULE) add_llvm_library(${name} MODULE ${ARG_UNPARSED_ARGUMENTS}) diff --git a/llvm/cmake/modules/CMakeLists.txt b/llvm/cmake/modules/CMakeLists.txt --- a/llvm/cmake/modules/CMakeLists.txt +++ b/llvm/cmake/modules/CMakeLists.txt @@ -28,6 +28,9 @@ if(intrinsics_gen IN_LIST LLVM_COMMON_DEPENDS) list(REMOVE_ITEM LLVM_COMMON_DEPENDS intrinsics_gen) endif() +if(omp_gen IN_LIST LLVM_COMMON_DEPENDS) + list(REMOVE_ITEM LLVM_COMMON_DEPENDS omp_gen) +endif() # Generate LLVMConfig.cmake for the build tree. set(LLVM_CONFIG_CODE " diff --git a/llvm/cmake/modules/LLVMConfig.cmake.in b/llvm/cmake/modules/LLVMConfig.cmake.in --- a/llvm/cmake/modules/LLVMConfig.cmake.in +++ b/llvm/cmake/modules/LLVMConfig.cmake.in @@ -104,12 +104,15 @@ @llvm_config_include_buildtree_only_exports@ endif() -# By creating intrinsics_gen here, subprojects that depend on LLVM's +# By creating intrinsics_gen and omp_gen here, subprojects that depend on LLVM's # tablegen-generated headers can always depend on this target whether building # in-tree with LLVM or not. if(NOT TARGET intrinsics_gen) add_custom_target(intrinsics_gen) endif() +if(NOT TARGET omp_gen) + add_custom_target(omp_gen) +endif() set_property(GLOBAL PROPERTY LLVM_TARGETS_CONFIGURED On) include(${LLVM_CMAKE_DIR}/LLVM-Config.cmake) diff --git a/llvm/lib/Transforms/IPO/CMakeLists.txt b/llvm/lib/Transforms/IPO/CMakeLists.txt --- a/llvm/lib/Transforms/IPO/CMakeLists.txt +++ b/llvm/lib/Transforms/IPO/CMakeLists.txt @@ -45,4 +45,5 @@ DEPENDS intrinsics_gen + omp_gen ) diff --git a/llvm/unittests/Frontend/CMakeLists.txt b/llvm/unittests/Frontend/CMakeLists.txt --- a/llvm/unittests/Frontend/CMakeLists.txt +++ b/llvm/unittests/Frontend/CMakeLists.txt @@ -10,6 +10,9 @@ add_llvm_unittest(LLVMFrontendTests OpenMPContextTest.cpp OpenMPIRBuilderTest.cpp + + DEPENDS + omp_gen ) target_link_libraries(LLVMFrontendTests PRIVATE LLVMTestingSupport)