[llvm-commits] [llvm] r135908 - in /llvm/trunk/cmake/modules: AddLLVM.cmake TableGen.cmake

Oscar Fuentes ofv at wanadoo.es
Mon Jul 25 07:11:55 PDT 2011


Author: ofv
Date: Mon Jul 25 09:11:55 2011
New Revision: 135908

URL: http://llvm.org/viewvc/llvm-project?rev=135908&view=rev
Log:
CMake: generalize the system that creates custom targets for
tablegenning to all libraries and executables.

Modified:
    llvm/trunk/cmake/modules/AddLLVM.cmake
    llvm/trunk/cmake/modules/TableGen.cmake

Modified: llvm/trunk/cmake/modules/AddLLVM.cmake
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/cmake/modules/AddLLVM.cmake?rev=135908&r1=135907&r2=135908&view=diff
==============================================================================
--- llvm/trunk/cmake/modules/AddLLVM.cmake (original)
+++ llvm/trunk/cmake/modules/AddLLVM.cmake Mon Jul 25 09:11:55 2011
@@ -2,6 +2,7 @@
 include(LLVM-Config)
 
 macro(add_llvm_library name)
+  create_tablegenning_custom_target( ${name} )
   llvm_process_sources( ALL_FILES ${ARGN} )
   add_library( ${name} ${ALL_FILES} )
   set_property( GLOBAL APPEND PROPERTY LLVM_LIBS ${name} )
@@ -32,6 +33,7 @@
     add_dependencies(${name} ${CURRENT_LLVM_TARGET})
   endif()
   set_target_properties(${name} PROPERTIES FOLDER "Libraries")
+  add_tablegenning_dependency( ${name} )
 endmacro(add_llvm_library name)
 
 
@@ -75,6 +77,7 @@
 
 
 macro(add_llvm_executable name)
+  create_tablegenning_custom_target( ${name} )
   llvm_process_sources( ALL_FILES ${ARGN} )
   if( EXCLUDE_FROM_ALL )
     add_executable(${name} EXCLUDE_FROM_ALL ${ALL_FILES})
@@ -88,6 +91,7 @@
     add_dependencies( ${name} ${LLVM_COMMON_DEPENDS} )
   endif( LLVM_COMMON_DEPENDS )
   link_system_libs( ${name} )
+  add_tablegenning_dependency( ${name} )
 endmacro(add_llvm_executable name)
 
 
@@ -124,16 +128,7 @@
 
 
 macro(add_llvm_target target_name)
-  if( TABLEGEN_OUTPUT )
-    add_custom_target(${target_name}Table_gen
-      DEPENDS ${TABLEGEN_OUTPUT})
-    add_dependencies(${target_name}Table_gen ${LLVM_COMMON_DEPENDS})
-  endif( TABLEGEN_OUTPUT )
   include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR})
   add_llvm_library(LLVM${target_name} ${ARGN} ${TABLEGEN_OUTPUT})
-  if ( TABLEGEN_OUTPUT )
-    add_dependencies(LLVM${target_name} ${target_name}Table_gen)
-    set_target_properties(${target_name}Table_gen PROPERTIES FOLDER "Tablegenning")
-  endif (TABLEGEN_OUTPUT)
   set( CURRENT_LLVM_TARGET LLVM${target_name} )
 endmacro(add_llvm_target)

Modified: llvm/trunk/cmake/modules/TableGen.cmake
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/cmake/modules/TableGen.cmake?rev=135908&r1=135907&r2=135908&view=diff
==============================================================================
--- llvm/trunk/cmake/modules/TableGen.cmake (original)
+++ llvm/trunk/cmake/modules/TableGen.cmake Mon Jul 25 09:11:55 2011
@@ -44,3 +44,24 @@
   set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${ofn} 
     PROPERTIES GENERATED 1)
 endmacro(tablegen)
+
+
+function(create_tablegenning_custom_target target)
+  # Creates the global target that runs the file-level dependencies
+  # for tablegenning.
+  if( TABLEGEN_OUTPUT )
+    add_custom_target(${target}Table_gen
+      DEPENDS ${TABLEGEN_OUTPUT})
+    add_dependencies(${target}Table_gen ${LLVM_COMMON_DEPENDS})
+  endif( TABLEGEN_OUTPUT )
+endfunction()
+
+function(add_tablegenning_dependency target)
+  # Makes the tablegenning step created with
+  # create_tablegenning_custom_target dependent on `target'.
+  if ( TABLEGEN_OUTPUT )
+    add_dependencies(${target} ${target}Table_gen)
+    set_target_properties(${target}Table_gen PROPERTIES FOLDER "Tablegenning")
+  endif (TABLEGEN_OUTPUT)
+endfunction()
+





More information about the llvm-commits mailing list