| ... | ... | @@ -299,6 +299,11 @@ set(ZIG_CPP_SOURCES |
| 299 | 299 | # https://github.com/ziglang/zig/issues/6363 |
| 300 | 300 | "${CMAKE_SOURCE_DIR}/src/windows_sdk.cpp" |
| 301 | 301 | ) |
| 302 | # Needed because we use cmake, not the zig build system, to build zig1.o. |
| 303 | set(ZIG_STAGE2_SOURCES |
| 304 | "${CMAKE_SOURCE_DIR}/src/main.zig" |
| 305 | "${CMAKE_SOURCE_DIR}/src/Module.zig" |
| 306 | ) |
| 302 | 307 | |
| 303 | 308 | if(MSVC) |
| 304 | 309 | set(MSVC_DIA_SDK_DIR "$ENV{VSINSTALLDIR}DIA SDK") |
| ... | ... | @@ -468,10 +473,10 @@ set(BUILD_ZIG1_ARGS |
| 468 | 473 | ) |
| 469 | 474 | |
| 470 | 475 | if("${ZIG_EXECUTABLE}" STREQUAL "") |
| 471 | | add_custom_target(zig_build_zig1 ALL |
| 476 | add_custom_command( |
| 477 | OUTPUT "${ZIG1_OBJECT}" |
| 472 | 478 | COMMAND zig0 ${BUILD_ZIG1_ARGS} |
| 473 | | DEPENDS zig0 |
| 474 | | BYPRODUCTS "${ZIG1_OBJECT}" |
| 479 | DEPENDS zig0 "${ZIG_STAGE2_SOURCES}" |
| 475 | 480 | COMMENT STATUS "Building self-hosted component ${ZIG1_OBJECT}" |
| 476 | 481 | WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" |
| 477 | 482 | ) |
| ... | ... | @@ -480,28 +485,29 @@ if("${ZIG_EXECUTABLE}" STREQUAL "") |
| 480 | 485 | set(ZIG_EXECUTABLE "${ZIG_EXECUTABLE}.exe") |
| 481 | 486 | endif() |
| 482 | 487 | else() |
| 483 | | add_custom_target(zig_build_zig1 ALL |
| 484 | | COMMAND "${ZIG_EXECUTABLE}" "build-obj" ${BUILD_ZIG1_ARGS} |
| 488 | add_custom_command( |
| 489 | OUTPUT "${ZIG1_OBJECT}" |
| 485 | 490 | BYPRODUCTS "${ZIG1_OBJECT}" |
| 491 | COMMAND "${ZIG_EXECUTABLE}" "build-obj" ${BUILD_ZIG1_ARGS} |
| 492 | DEPENDS ${ZIG_STAGE2_SOURCES} |
| 486 | 493 | COMMENT STATUS "Building self-hosted component ${ZIG1_OBJECT}" |
| 487 | 494 | WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" |
| 488 | 495 | ) |
| 489 | 496 | endif() |
| 490 | 497 | |
| 491 | 498 | # cmake won't let us configure an executable without C sources. |
| 492 | | add_executable(zig "${CMAKE_SOURCE_DIR}/src/stage1/empty.cpp") |
| 499 | add_executable(zig "${CMAKE_SOURCE_DIR}/src/stage1/empty.cpp" "${ZIG1_OBJECT}") |
| 493 | 500 | |
| 494 | 501 | set_target_properties(zig PROPERTIES |
| 495 | 502 | COMPILE_FLAGS ${EXE_CFLAGS} |
| 496 | 503 | LINK_FLAGS ${EXE_LDFLAGS} |
| 497 | 504 | ) |
| 498 | | target_link_libraries(zig "${ZIG1_OBJECT}" zigstage1) |
| 505 | target_link_libraries(zig zigstage1) |
| 499 | 506 | if(MSVC) |
| 500 | 507 | target_link_libraries(zig ntdll.lib) |
| 501 | 508 | elseif(MINGW) |
| 502 | 509 | target_link_libraries(zig ntdll) |
| 503 | 510 | endif() |
| 504 | | add_dependencies(zig zig_build_zig1) |
| 505 | 511 | |
| 506 | 512 | install(TARGETS zig DESTINATION bin) |
| 507 | 513 | |