@@ -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" )
0 commit comments