mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-06-30 23:30:28 +00:00
CMake: Fixed dependencies of .cpp source files on .td and tablegenned
files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59325 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
7e6a1bc0fa
commit
1bbdd4645b
|
@ -1,6 +1,8 @@
|
||||||
|
include(LLVMProcessSources)
|
||||||
include(LLVMConfig)
|
include(LLVMConfig)
|
||||||
|
|
||||||
macro(add_llvm_library name)
|
macro(add_llvm_library name)
|
||||||
|
llvm_process_sources( ${ARGN} )
|
||||||
add_library( ${name} ${ARGN} )
|
add_library( ${name} ${ARGN} )
|
||||||
set( llvm_libs ${llvm_libs} ${name} PARENT_SCOPE)
|
set( llvm_libs ${llvm_libs} ${name} PARENT_SCOPE)
|
||||||
set( llvm_lib_targets ${llvm_lib_targets} ${name} PARENT_SCOPE )
|
set( llvm_lib_targets ${llvm_lib_targets} ${name} PARENT_SCOPE )
|
||||||
|
@ -14,6 +16,7 @@ endmacro(add_llvm_library name)
|
||||||
|
|
||||||
|
|
||||||
macro(add_llvm_executable name)
|
macro(add_llvm_executable name)
|
||||||
|
llvm_process_sources( ${ARGN} )
|
||||||
add_executable(${name} ${ARGN})
|
add_executable(${name} ${ARGN})
|
||||||
if( LLVM_USED_LIBS )
|
if( LLVM_USED_LIBS )
|
||||||
foreach(lib ${LLVM_USED_LIBS})
|
foreach(lib ${LLVM_USED_LIBS})
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
include(LLVMProcessSources)
|
||||||
|
|
||||||
macro(target_name_of_partially_linked_object lib var)
|
macro(target_name_of_partially_linked_object lib var)
|
||||||
if( MSVC )
|
if( MSVC )
|
||||||
|
@ -15,6 +16,7 @@ macro(add_partially_linked_object lib)
|
||||||
set(pll ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/${lib}.o)
|
set(pll ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/${lib}.o)
|
||||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/temp_lib)
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/temp_lib)
|
||||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/temp_lib)
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/temp_lib)
|
||||||
|
llvm_process_sources( ${ARGN} )
|
||||||
add_library( ${lib} STATIC ${ARGN})
|
add_library( ${lib} STATIC ${ARGN})
|
||||||
if( LLVM_COMMON_DEPENDS )
|
if( LLVM_COMMON_DEPENDS )
|
||||||
add_dependencies( ${lib} ${LLVM_COMMON_DEPENDS} )
|
add_dependencies( ${lib} ${LLVM_COMMON_DEPENDS} )
|
||||||
|
|
13
cmake/modules/LLVMProcessSources.cmake
Normal file
13
cmake/modules/LLVMProcessSources.cmake
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
include(AddFileDependencies)
|
||||||
|
|
||||||
|
function(llvm_process_sources)
|
||||||
|
set( sources ${ARGN} )
|
||||||
|
# Create file dependencies on the tablegenned files, if any. Seems
|
||||||
|
# that this is not strictly needed, as dependencies of the .cpp
|
||||||
|
# sources on the tablegenned .inc files are detected and handled,
|
||||||
|
# but just in case...
|
||||||
|
foreach( s ${sources} )
|
||||||
|
set( f ${CMAKE_CURRENT_SOURCE_DIR}/${s} )
|
||||||
|
add_file_dependencies( ${f} ${TABLEGEN_OUTPUT} )
|
||||||
|
endforeach(s)
|
||||||
|
endfunction(llvm_process_sources)
|
|
@ -3,9 +3,10 @@
|
||||||
# Adds the name of the generated file to TABLEGEN_OUTPUT.
|
# Adds the name of the generated file to TABLEGEN_OUTPUT.
|
||||||
|
|
||||||
macro(tablegen ofn)
|
macro(tablegen ofn)
|
||||||
|
file(GLOB all_tds "*.td")
|
||||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${ofn}
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${ofn}
|
||||||
COMMAND ${LLVM_TABLEGEN} ${ARGN} -I ${CMAKE_CURRENT_SOURCE_DIR} -I ${CMAKE_SOURCE_DIR}/lib/Target -I ${LLVM_MAIN_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${LLVM_TARGET_DEFINITIONS} -o ${ofn}
|
COMMAND ${LLVM_TABLEGEN} ${ARGN} -I ${CMAKE_CURRENT_SOURCE_DIR} -I ${CMAKE_SOURCE_DIR}/lib/Target -I ${LLVM_MAIN_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${LLVM_TARGET_DEFINITIONS} -o ${ofn}
|
||||||
DEPENDS tblgen ${CMAKE_CURRENT_SOURCE_DIR}/${LLVM_TARGET_DEFINITIONS}
|
DEPENDS tblgen ${all_tds}
|
||||||
COMMENT "Building ${ofn}..."
|
COMMENT "Building ${ofn}..."
|
||||||
)
|
)
|
||||||
set(TABLEGEN_OUTPUT ${TABLEGEN_OUTPUT} ${CMAKE_CURRENT_BINARY_DIR}/${ofn})
|
set(TABLEGEN_OUTPUT ${TABLEGEN_OUTPUT} ${CMAKE_CURRENT_BINARY_DIR}/${ofn})
|
||||||
|
|
Loading…
Reference in New Issue
Block a user