| ... | ... | @@ -205,6 +205,7 @@ set(ZIG_CPP_SOURCES |
| 205 | 205 | ) |
| 206 | 206 | # Needed because we use cmake, not the zig build system, to build zig2.o. |
| 207 | 207 | set(ZIG_STAGE2_SOURCES |
| 208 | "${ZIG_CONFIG_ZIG_OUT}" |
| 208 | 209 | "${CMAKE_SOURCE_DIR}/lib/std/array_hash_map.zig" |
| 209 | 210 | "${CMAKE_SOURCE_DIR}/lib/std/array_list.zig" |
| 210 | 211 | "${CMAKE_SOURCE_DIR}/lib/std/ascii.zig" |
| ... | ... | @@ -761,10 +762,83 @@ add_custom_command( |
| 761 | 762 | WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" |
| 762 | 763 | ) |
| 763 | 764 | |
| 764 | | |
| 765 | 765 | add_executable(zig2 ${ZIG2_C_SOURCE} ${ZIG_COMPILER_RT_C_SOURCE}) |
| 766 | 766 | set_target_properties(zig2 PROPERTIES |
| 767 | 767 | COMPILE_FLAGS ${ZIG2_COMPILE_FLAGS} |
| 768 | 768 | LINK_FLAGS ${ZIG2_LINK_FLAGS} |
| 769 | 769 | ) |
| 770 | 770 | target_include_directories(zig2 PUBLIC "${CMAKE_SOURCE_DIR}/lib") |
| 771 | target_link_libraries(zig2 LINK_PUBLIC zigcpp) |
| 772 | |
| 773 | if(MSVC) |
| 774 | target_link_libraries(zig2 ntdll.lib) |
| 775 | elseif(MINGW) |
| 776 | target_link_libraries(zig2 ntdll) |
| 777 | endif() |
| 778 | |
| 779 | if(NOT MSVC) |
| 780 | target_link_libraries(zig2 LINK_PUBLIC ${LIBXML2}) |
| 781 | endif() |
| 782 | |
| 783 | if(ZIG_DIA_GUIDS_LIB) |
| 784 | target_link_libraries(zig2 LINK_PUBLIC ${ZIG_DIA_GUIDS_LIB}) |
| 785 | endif() |
| 786 | |
| 787 | if(MSVC OR MINGW) |
| 788 | target_link_libraries(zig2 LINK_PUBLIC version) |
| 789 | endif() |
| 790 | |
| 791 | if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") |
| 792 | set(ZIG_RELEASE_ARG "") |
| 793 | elseif("${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo") |
| 794 | set(ZIG_RELEASE_ARG -Drelease) |
| 795 | else() |
| 796 | set(ZIG_RELEASE_ARG -Drelease -Dstrip) |
| 797 | endif() |
| 798 | if(ZIG_NO_LIB) |
| 799 | set(ZIG_NO_LIB_ARG "-Dno-lib") |
| 800 | else() |
| 801 | set(ZIG_NO_LIB_ARG "") |
| 802 | endif() |
| 803 | if(ZIG_SINGLE_THREADED) |
| 804 | set(ZIG_SINGLE_THREADED_ARG "-fsingle-threaded") |
| 805 | else() |
| 806 | set(ZIG_SINGLE_THREADED_ARG "") |
| 807 | endif() |
| 808 | if(ZIG_STATIC) |
| 809 | set(ZIG_STATIC_ARG "-Duse-zig-libcxx") |
| 810 | else() |
| 811 | set(ZIG_STATIC_ARG "") |
| 812 | endif() |
| 813 | |
| 814 | set(ZIG_BUILD_ARGS |
| 815 | --zig-lib-dir "${CMAKE_SOURCE_DIR}/lib" |
| 816 | "-Dconfig_h=${ZIG_CONFIG_H_OUT}" |
| 817 | "-Denable-llvm" |
| 818 | ${ZIG_RELEASE_ARG} |
| 819 | ${ZIG_STATIC_ARG} |
| 820 | ${ZIG_NO_LIB_ARG} |
| 821 | ${ZIG_SINGLE_THREADED_ARG} |
| 822 | "-Dtarget=${ZIG_TARGET_TRIPLE}" |
| 823 | "-Dcpu=${ZIG_TARGET_MCPU}" |
| 824 | "-Dversion-string=${RESOLVED_ZIG_VERSION}" |
| 825 | ) |
| 826 | |
| 827 | add_custom_target(stage3 ALL |
| 828 | COMMAND zig2 build compile ${ZIG_BUILD_ARGS} |
| 829 | DEPENDS zig2 |
| 830 | COMMENT STATUS "Building stage3" |
| 831 | WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" |
| 832 | ) |
| 833 | |
| 834 | if(WIN32) |
| 835 | set(ZIG_EXECUTABLE "${CMAKE_BINARY_DIR}/zig2.exe") |
| 836 | else() |
| 837 | set(ZIG_EXECUTABLE "${CMAKE_BINARY_DIR}/zig2") |
| 838 | endif() |
| 839 | |
| 840 | install(CODE "set(ZIG_EXECUTABLE \"${ZIG_EXECUTABLE}\")") |
| 841 | install(CODE "set(ZIG_BUILD_ARGS \"${ZIG_BUILD_ARGS}\")") |
| 842 | install(CODE "set(CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")") |
| 843 | install(CODE "set(CMAKE_SOURCE_DIR \"${CMAKE_SOURCE_DIR}\")") |
| 844 | install(SCRIPT "${CMAKE_SOURCE_DIR}/cmake/install.cmake") |