Skip to content

Commit d6f57df

Browse files
committed
Link wasm to Halide_LLVM_srcs and fix include propagation
1 parent e538ab4 commit d6f57df

1 file changed

Lines changed: 33 additions & 30 deletions

File tree

src/CMakeLists.txt

Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -404,6 +404,29 @@ target_sources(
404404
# keep-sorted end
405405
)
406406

407+
# LLVM sources live in their own object library so they can have a separate PCH.
408+
add_library(
409+
Halide_LLVM_srcs OBJECT
410+
# keep-sorted start case=no
411+
CodeGen_ARM.cpp
412+
CodeGen_Hexagon.cpp
413+
CodeGen_Internal.cpp
414+
CodeGen_LLVM.cpp
415+
CodeGen_Posix.cpp
416+
CodeGen_PowerPC.cpp
417+
CodeGen_PTX_Dev.cpp
418+
CodeGen_RISCV.cpp
419+
CodeGen_WebAssembly.cpp
420+
CodeGen_X86.cpp
421+
HexagonOffload.cpp
422+
JITModule.cpp
423+
LLVM_Output.cpp
424+
LLVM_Runtime_Linker.cpp
425+
Module.cpp
426+
WasmExecutor.cpp
427+
# keep-sorted end
428+
)
429+
407430
set(C_TEMPLATE_FILES
408431
CodeGen_C_prologue
409432
CodeGen_C_vectors
@@ -575,13 +598,14 @@ if (Halide_WASM_BACKEND STREQUAL "wabt")
575598
find_package(wabt REQUIRED)
576599
_Halide_pkgdep(wabt)
577600

578-
target_link_libraries(Halide PRIVATE wabt::wabt)
579-
target_compile_definitions(Halide PRIVATE WITH_WABT)
601+
target_compile_definitions(Halide_LLVM_srcs PRIVATE WITH_WABT)
602+
target_link_libraries(Halide_LLVM_srcs PRIVATE wabt::wabt)
580603
elseif (Halide_WASM_BACKEND STREQUAL "V8")
581604
find_package(V8 REQUIRED)
582605
_Halide_pkgdep(V8)
583-
target_compile_definitions(Halide PRIVATE WITH_V8)
584-
target_link_libraries(Halide PRIVATE V8::V8)
606+
607+
target_compile_definitions(Halide_LLVM_srcs PRIVATE WITH_V8)
608+
target_link_libraries(Halide_LLVM_srcs PRIVATE V8::V8)
585609
elseif (Halide_WASM_BACKEND)
586610
message(FATAL_ERROR "Unknown Halide_WASM_BACKEND `${Halide_WASM_BACKEND}`")
587611
endif ()
@@ -670,38 +694,17 @@ if (NOT MSVC)
670694
set_source_files_properties(Util.cpp PROPERTIES SKIP_PRECOMPILE_HEADERS ON)
671695
endif ()
672696

673-
# LLVM sources live in their own object library so they can have a separate PCH.
674-
add_library(Halide_LLVM_srcs OBJECT
675-
CodeGen_ARM.cpp
676-
CodeGen_Hexagon.cpp
677-
CodeGen_Internal.cpp
678-
CodeGen_LLVM.cpp
679-
CodeGen_Posix.cpp
680-
CodeGen_PowerPC.cpp
681-
CodeGen_PTX_Dev.cpp
682-
CodeGen_RISCV.cpp
683-
CodeGen_WebAssembly.cpp
684-
CodeGen_X86.cpp
685-
HexagonOffload.cpp
686-
JITModule.cpp
687-
LLVM_Output.cpp
688-
LLVM_Runtime_Linker.cpp
689-
Module.cpp
690-
WasmExecutor.cpp
691-
)
692-
693697
target_compile_features(Halide_LLVM_srcs PRIVATE cxx_std_17)
694698
set_target_properties(Halide_LLVM_srcs PROPERTIES POSITION_INDEPENDENT_CODE ON)
695699

696700
# Mirror compile flags from the main Halide target.
697-
target_include_directories(Halide_LLVM_srcs PRIVATE
698-
"$<TARGET_PROPERTY:Halide,INCLUDE_DIRECTORIES>"
699-
)
700-
target_compile_definitions(Halide_LLVM_srcs PRIVATE
701+
target_compile_definitions(
702+
Halide_LLVM_srcs PRIVATE
701703
"$<TARGET_PROPERTY:Halide,COMPILE_DEFINITIONS>"
702704
"$<$<STREQUAL:$<TARGET_PROPERTY:Halide,TYPE>,SHARED_LIBRARY>:Halide_EXPORTS>"
703705
)
704-
target_compile_options(Halide_LLVM_srcs PRIVATE
706+
target_compile_options(
707+
Halide_LLVM_srcs PRIVATE
705708
"$<TARGET_PROPERTY:Halide,COMPILE_OPTIONS>"
706709
)
707710

@@ -716,7 +719,7 @@ if (NOT MSVC)
716719
target_precompile_headers(Halide_LLVM_srcs PRIVATE Halide_llvm_pch.h)
717720
endif ()
718721

719-
target_sources(Halide PRIVATE $<TARGET_OBJECTS:Halide_LLVM_srcs>)
722+
target_link_libraries(Halide PRIVATE Halide_LLVM_srcs)
720723

721724
##
722725
# Add autoschedulers to the build.

0 commit comments

Comments
 (0)