diff --git a/CMakeLists.txt b/CMakeLists.txt index c3a2d6bf7d..08c2cf4761 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -353,6 +353,223 @@ set(ZIG_CPP_SOURCES "${CMAKE_SOURCE_DIR}/src/zig_llvm.cpp" ) +set(ZIG_STD_FILES + "array_list.zig" + "base64.zig" + "buf_map.zig" + "buf_set.zig" + "buffer.zig" + "build.zig" + "c/darwin.zig" + "c/index.zig" + "c/linux.zig" + "c/windows.zig" + "cstr.zig" + "debug/failing_allocator.zig" + "debug/index.zig" + "dwarf.zig" + "elf.zig" + "empty.zig" + "endian.zig" + "fmt/errol/enum3.zig" + "fmt/errol/index.zig" + "fmt/errol/lookup.zig" + "fmt/index.zig" + "hash_map.zig" + "heap.zig" + "index.zig" + "io.zig" + "linked_list.zig" + "math/acos.zig" + "math/acosh.zig" + "math/asin.zig" + "math/asinh.zig" + "math/atan.zig" + "math/atan2.zig" + "math/atanh.zig" + "math/cbrt.zig" + "math/ceil.zig" + "math/copysign.zig" + "math/cos.zig" + "math/cosh.zig" + "math/exp.zig" + "math/exp2.zig" + "math/expm1.zig" + "math/expo2.zig" + "math/fabs.zig" + "math/floor.zig" + "math/fma.zig" + "math/frexp.zig" + "math/hypot.zig" + "math/ilogb.zig" + "math/index.zig" + "math/inf.zig" + "math/isfinite.zig" + "math/isinf.zig" + "math/isnan.zig" + "math/isnormal.zig" + "math/ln.zig" + "math/log.zig" + "math/log10.zig" + "math/log1p.zig" + "math/log2.zig" + "math/modf.zig" + "math/nan.zig" + "math/pow.zig" + "math/round.zig" + "math/scalbn.zig" + "math/signbit.zig" + "math/sin.zig" + "math/sinh.zig" + "math/sqrt.zig" + "math/tan.zig" + "math/tanh.zig" + "math/trunc.zig" + "mem.zig" + "net.zig" + "os/child_process.zig" + "os/darwin.zig" + "os/darwin_errno.zig" + "os/get_user_id.zig" + "os/index.zig" + "os/linux.zig" + "os/linux_errno.zig" + "os/linux_i386.zig" + "os/linux_x86_64.zig" + "os/path.zig" + "os/windows/error.zig" + "os/windows/index.zig" + "os/windows/util.zig" + "rand.zig" + "sort.zig" + "special/bootstrap.zig" + "special/bootstrap_lib.zig" + "special/build_file_template.zig" + "special/build_runner.zig" + "special/builtin.zig" + "special/compiler_rt/aulldiv.zig" + "special/compiler_rt/aullrem.zig" + "special/compiler_rt/comparetf2.zig" + "special/compiler_rt/fixuint.zig" + "special/compiler_rt/fixunsdfdi.zig" + "special/compiler_rt/fixunsdfsi.zig" + "special/compiler_rt/fixunsdfti.zig" + "special/compiler_rt/fixunssfdi.zig" + "special/compiler_rt/fixunssfsi.zig" + "special/compiler_rt/fixunssfti.zig" + "special/compiler_rt/fixunstfdi.zig" + "special/compiler_rt/fixunstfsi.zig" + "special/compiler_rt/fixunstfti.zig" + "special/compiler_rt/index.zig" + "special/compiler_rt/udivmod.zig" + "special/compiler_rt/udivmoddi4.zig" + "special/compiler_rt/udivmodti4.zig" + "special/compiler_rt/udivti3.zig" + "special/compiler_rt/umodti3.zig" + "special/panic.zig" + "special/test_runner.zig" + "unicode.zig" +) + +set(ZIG_C_HEADER_FILES + "__clang_cuda_builtin_vars.h" + "__clang_cuda_cmath.h" + "__clang_cuda_complex_builtins.h" + "__clang_cuda_intrinsics.h" + "__clang_cuda_math_forward_declares.h" + "__clang_cuda_runtime_wrapper.h" + "__stddef_max_align_t.h" + "__wmmintrin_aes.h" + "__wmmintrin_pclmul.h" + "adxintrin.h" + "altivec.h" + "ammintrin.h" + "arm_acle.h" + "arm_neon.h" + "armintr.h" + "avx2intrin.h" + "avx512bwintrin.h" + "avx512cdintrin.h" + "avx512dqintrin.h" + "avx512erintrin.h" + "avx512fintrin.h" + "avx512ifmaintrin.h" + "avx512ifmavlintrin.h" + "avx512pfintrin.h" + "avx512vbmiintrin.h" + "avx512vbmivlintrin.h" + "avx512vlbwintrin.h" + "avx512vlcdintrin.h" + "avx512vldqintrin.h" + "avx512vlintrin.h" + "avx512vpopcntdqintrin.h" + "avxintrin.h" + "bmi2intrin.h" + "bmiintrin.h" + "clflushoptintrin.h" + "clzerointrin.h" + "cpuid.h" + "cuda_wrappers/algorithm" + "cuda_wrappers/complex" + "cuda_wrappers/new" + "emmintrin.h" + "f16cintrin.h" + "float.h" + "fma4intrin.h" + "fmaintrin.h" + "fxsrintrin.h" + "htmintrin.h" + "htmxlintrin.h" + "ia32intrin.h" + "immintrin.h" + "intrin.h" + "inttypes.h" + "iso646.h" + "limits.h" + "lwpintrin.h" + "lzcntintrin.h" + "mm3dnow.h" + "mm_malloc.h" + "mmintrin.h" + "module.modulemap" + "msa.h" + "mwaitxintrin.h" + "nmmintrin.h" + "opencl-c.h" + "pkuintrin.h" + "pmmintrin.h" + "popcntintrin.h" + "prfchwintrin.h" + "rdseedintrin.h" + "rtmintrin.h" + "s390intrin.h" + "shaintrin.h" + "smmintrin.h" + "stdalign.h" + "stdarg.h" + "stdatomic.h" + "stdbool.h" + "stddef.h" + "stdint.h" + "stdnoreturn.h" + "tbmintrin.h" + "tgmath.h" + "tmmintrin.h" + "unwind.h" + "vadefs.h" + "varargs.h" + "vecintrin.h" + "wmmintrin.h" + "x86intrin.h" + "xmmintrin.h" + "xopintrin.h" + "xsavecintrin.h" + "xsaveintrin.h" + "xsaveoptintrin.h" + "xsavesintrin.h" + "xtestintrin.h" +) + set(ZIG_LIB_DIR "lib/zig") set(C_HEADERS_DEST "${ZIG_LIB_DIR}/include") set(ZIG_STD_DEST "${ZIG_LIB_DIR}/std") @@ -420,215 +637,12 @@ endif() install(TARGETS zig DESTINATION bin) install(TARGETS zig_cpp DESTINATION "${ZIG_CPP_LIB_DIR}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/__clang_cuda_builtin_vars.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/__clang_cuda_cmath.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/__clang_cuda_complex_builtins.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/__clang_cuda_intrinsics.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/__clang_cuda_math_forward_declares.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/__clang_cuda_runtime_wrapper.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/__stddef_max_align_t.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/__wmmintrin_aes.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/__wmmintrin_pclmul.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/adxintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/altivec.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/ammintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/arm_acle.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/arm_neon.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/armintr.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/avx2intrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/avx512bwintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/avx512cdintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/avx512dqintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/avx512erintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/avx512fintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/avx512ifmaintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/avx512ifmavlintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/avx512pfintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/avx512vbmiintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/avx512vbmivlintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/avx512vlbwintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/avx512vlcdintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/avx512vldqintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/avx512vlintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/avx512vpopcntdqintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/avxintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/bmi2intrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/bmiintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/clflushoptintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/clzerointrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/cpuid.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/cuda_wrappers/algorithm" DESTINATION "${C_HEADERS_DEST}/cuda_wrappers") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/cuda_wrappers/complex" DESTINATION "${C_HEADERS_DEST}/cuda_wrappers") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/cuda_wrappers/new" DESTINATION "${C_HEADERS_DEST}/cuda_wrappers") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/emmintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/f16cintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/float.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/fma4intrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/fmaintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/fxsrintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/htmintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/htmxlintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/ia32intrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/immintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/intrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/inttypes.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/iso646.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/limits.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/lwpintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/lzcntintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/mm3dnow.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/mm_malloc.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/mmintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/module.modulemap" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/msa.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/mwaitxintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/nmmintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/opencl-c.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/pkuintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/pmmintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/popcntintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/prfchwintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/rdseedintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/rtmintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/s390intrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/shaintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/smmintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/stdalign.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/stdarg.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/stdatomic.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/stdbool.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/stddef.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/stdint.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/stdnoreturn.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/tbmintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/tgmath.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/tmmintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/unwind.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/vadefs.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/varargs.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/vecintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/wmmintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/x86intrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/xmmintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/xopintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/xsavecintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/xsaveintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/xsaveoptintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/xsavesintrin.h" DESTINATION "${C_HEADERS_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/c_headers/xtestintrin.h" DESTINATION "${C_HEADERS_DEST}") +foreach(file ${ZIG_C_HEADER_FILES}) + get_filename_component(file_dir "${C_HEADERS_DEST}/${file}" DIRECTORY) + install(FILES "${CMAKE_SOURCE_DIR}/c_headers/${file}" DESTINATION "${file_dir}") +endforeach() -install(FILES "${CMAKE_SOURCE_DIR}/std/array_list.zig" DESTINATION "${ZIG_STD_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/std/base64.zig" DESTINATION "${ZIG_STD_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/std/buf_map.zig" DESTINATION "${ZIG_STD_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/std/buf_set.zig" DESTINATION "${ZIG_STD_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/std/buffer.zig" DESTINATION "${ZIG_STD_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/std/build.zig" DESTINATION "${ZIG_STD_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/std/c/darwin.zig" DESTINATION "${ZIG_STD_DEST}/c") -install(FILES "${CMAKE_SOURCE_DIR}/std/c/index.zig" DESTINATION "${ZIG_STD_DEST}/c") -install(FILES "${CMAKE_SOURCE_DIR}/std/c/linux.zig" DESTINATION "${ZIG_STD_DEST}/c") -install(FILES "${CMAKE_SOURCE_DIR}/std/c/windows.zig" DESTINATION "${ZIG_STD_DEST}/c") -install(FILES "${CMAKE_SOURCE_DIR}/std/cstr.zig" DESTINATION "${ZIG_STD_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/std/debug/index.zig" DESTINATION "${ZIG_STD_DEST}/debug") -install(FILES "${CMAKE_SOURCE_DIR}/std/debug/failing_allocator.zig" DESTINATION "${ZIG_STD_DEST}/debug") -install(FILES "${CMAKE_SOURCE_DIR}/std/dwarf.zig" DESTINATION "${ZIG_STD_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/std/elf.zig" DESTINATION "${ZIG_STD_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/std/empty.zig" DESTINATION "${ZIG_STD_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/std/endian.zig" DESTINATION "${ZIG_STD_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/std/fmt/errol/enum3.zig" DESTINATION "${ZIG_STD_DEST}/fmt/errol") -install(FILES "${CMAKE_SOURCE_DIR}/std/fmt/errol/index.zig" DESTINATION "${ZIG_STD_DEST}/fmt/errol") -install(FILES "${CMAKE_SOURCE_DIR}/std/fmt/errol/lookup.zig" DESTINATION "${ZIG_STD_DEST}/fmt/errol") -install(FILES "${CMAKE_SOURCE_DIR}/std/fmt/index.zig" DESTINATION "${ZIG_STD_DEST}/fmt") -install(FILES "${CMAKE_SOURCE_DIR}/std/hash_map.zig" DESTINATION "${ZIG_STD_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/std/heap.zig" DESTINATION "${ZIG_STD_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/std/index.zig" DESTINATION "${ZIG_STD_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/std/io.zig" DESTINATION "${ZIG_STD_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/std/linked_list.zig" DESTINATION "${ZIG_STD_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/acos.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/acosh.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/asin.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/asinh.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/atan.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/atan2.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/atanh.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/cbrt.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/ceil.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/copysign.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/cos.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/cosh.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/exp.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/exp2.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/expm1.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/expo2.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/fabs.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/floor.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/fma.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/frexp.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/hypot.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/ilogb.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/index.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/inf.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/isfinite.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/isinf.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/isnan.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/isnormal.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/ln.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/log.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/log10.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/log1p.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/log2.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/modf.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/nan.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/pow.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/round.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/scalbn.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/signbit.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/sin.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/sinh.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/sqrt.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/tan.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/tanh.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/math/trunc.zig" DESTINATION "${ZIG_STD_DEST}/math") -install(FILES "${CMAKE_SOURCE_DIR}/std/mem.zig" DESTINATION "${ZIG_STD_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/std/net.zig" DESTINATION "${ZIG_STD_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/std/os/child_process.zig" DESTINATION "${ZIG_STD_DEST}/os") -install(FILES "${CMAKE_SOURCE_DIR}/std/os/darwin.zig" DESTINATION "${ZIG_STD_DEST}/os") -install(FILES "${CMAKE_SOURCE_DIR}/std/os/darwin_errno.zig" DESTINATION "${ZIG_STD_DEST}/os") -install(FILES "${CMAKE_SOURCE_DIR}/std/os/get_user_id.zig" DESTINATION "${ZIG_STD_DEST}/os") -install(FILES "${CMAKE_SOURCE_DIR}/std/os/index.zig" DESTINATION "${ZIG_STD_DEST}/os") -install(FILES "${CMAKE_SOURCE_DIR}/std/os/linux.zig" DESTINATION "${ZIG_STD_DEST}/os") -install(FILES "${CMAKE_SOURCE_DIR}/std/os/linux_errno.zig" DESTINATION "${ZIG_STD_DEST}/os") -install(FILES "${CMAKE_SOURCE_DIR}/std/os/linux_i386.zig" DESTINATION "${ZIG_STD_DEST}/os") -install(FILES "${CMAKE_SOURCE_DIR}/std/os/linux_x86_64.zig" DESTINATION "${ZIG_STD_DEST}/os") -install(FILES "${CMAKE_SOURCE_DIR}/std/os/path.zig" DESTINATION "${ZIG_STD_DEST}/os") -install(FILES "${CMAKE_SOURCE_DIR}/std/os/windows/error.zig" DESTINATION "${ZIG_STD_DEST}/os/windows") -install(FILES "${CMAKE_SOURCE_DIR}/std/os/windows/index.zig" DESTINATION "${ZIG_STD_DEST}/os/windows") -install(FILES "${CMAKE_SOURCE_DIR}/std/os/windows/util.zig" DESTINATION "${ZIG_STD_DEST}/os/windows") -install(FILES "${CMAKE_SOURCE_DIR}/std/rand.zig" DESTINATION "${ZIG_STD_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/std/sort.zig" DESTINATION "${ZIG_STD_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/std/unicode.zig" DESTINATION "${ZIG_STD_DEST}") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/bootstrap.zig" DESTINATION "${ZIG_STD_DEST}/special") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/bootstrap_lib.zig" DESTINATION "${ZIG_STD_DEST}/special") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/build_file_template.zig" DESTINATION "${ZIG_STD_DEST}/special") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/build_runner.zig" DESTINATION "${ZIG_STD_DEST}/special") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/builtin.zig" DESTINATION "${ZIG_STD_DEST}/special") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/compiler_rt/aulldiv.zig" DESTINATION "${ZIG_STD_DEST}/special/compiler_rt") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/compiler_rt/aullrem.zig" DESTINATION "${ZIG_STD_DEST}/special/compiler_rt") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/compiler_rt/comparetf2.zig" DESTINATION "${ZIG_STD_DEST}/special/compiler_rt") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/compiler_rt/fixuint.zig" DESTINATION "${ZIG_STD_DEST}/special/compiler_rt") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/compiler_rt/fixunsdfdi.zig" DESTINATION "${ZIG_STD_DEST}/special/compiler_rt") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/compiler_rt/fixunsdfsi.zig" DESTINATION "${ZIG_STD_DEST}/special/compiler_rt") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/compiler_rt/fixunsdfti.zig" DESTINATION "${ZIG_STD_DEST}/special/compiler_rt") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/compiler_rt/fixunssfdi.zig" DESTINATION "${ZIG_STD_DEST}/special/compiler_rt") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/compiler_rt/fixunssfsi.zig" DESTINATION "${ZIG_STD_DEST}/special/compiler_rt") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/compiler_rt/fixunssfti.zig" DESTINATION "${ZIG_STD_DEST}/special/compiler_rt") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/compiler_rt/fixunstfdi.zig" DESTINATION "${ZIG_STD_DEST}/special/compiler_rt") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/compiler_rt/fixunstfsi.zig" DESTINATION "${ZIG_STD_DEST}/special/compiler_rt") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/compiler_rt/fixunstfti.zig" DESTINATION "${ZIG_STD_DEST}/special/compiler_rt") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/compiler_rt/index.zig" DESTINATION "${ZIG_STD_DEST}/special/compiler_rt") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/compiler_rt/udivmod.zig" DESTINATION "${ZIG_STD_DEST}/special/compiler_rt") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/compiler_rt/udivmoddi4.zig" DESTINATION "${ZIG_STD_DEST}/special/compiler_rt") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/compiler_rt/udivmodti4.zig" DESTINATION "${ZIG_STD_DEST}/special/compiler_rt") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/compiler_rt/udivti3.zig" DESTINATION "${ZIG_STD_DEST}/special/compiler_rt") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/compiler_rt/umodti3.zig" DESTINATION "${ZIG_STD_DEST}/special/compiler_rt") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/panic.zig" DESTINATION "${ZIG_STD_DEST}/special") -install(FILES "${CMAKE_SOURCE_DIR}/std/special/test_runner.zig" DESTINATION "${ZIG_STD_DEST}/special") +foreach(file ${ZIG_STD_FILES}) + get_filename_component(file_dir "${ZIG_STD_DEST}/${file}" DIRECTORY) + install(FILES "${CMAKE_SOURCE_DIR}/std/${file}" DESTINATION "${file_dir}") +endforeach() diff --git a/build.zig b/build.zig index 3d54067186..679c88bb71 100644 --- a/build.zig +++ b/build.zig @@ -43,6 +43,8 @@ pub fn build(b: &Builder) { const cxx_compiler = nextValue(&index, build_info); const lld_include_dir = nextValue(&index, build_info); const lld_libraries = nextValue(&index, build_info); + const std_files = nextValue(&index, build_info); + const c_header_files = nextValue(&index, build_info); var exe = b.addExecutable("zig", "src-self-hosted/main.zig"); exe.setBuildMode(mode); @@ -77,7 +79,8 @@ pub fn build(b: &Builder) { test_step.dependOn(&exe.step); b.installArtifact(exe); - installStdLib(b); + installStdLib(b, std_files); + installCHeaders(b, c_header_files); } @@ -200,131 +203,24 @@ fn findLLVM(b: &Builder) -> ?LibraryDep { return result; } -pub fn installStdLib(b: &Builder) { - const stdlib_files = []const []const u8 { - "array_list.zig", - "base64.zig", - "buf_map.zig", - "buf_set.zig", - "buffer.zig", - "build.zig", - "c/darwin.zig", - "c/index.zig", - "c/linux.zig", - "c/windows.zig", - "cstr.zig", - "debug/failing_allocator.zig", - "debug/index.zig", - "dwarf.zig", - "elf.zig", - "empty.zig", - "endian.zig", - "fmt/errol/enum3.zig", - "fmt/errol/index.zig", - "fmt/errol/lookup.zig", - "fmt/index.zig", - "hash_map.zig", - "heap.zig", - "index.zig", - "io.zig", - "linked_list.zig", - "math/acos.zig", - "math/acosh.zig", - "math/asin.zig", - "math/asinh.zig", - "math/atan.zig", - "math/atan2.zig", - "math/atanh.zig", - "math/cbrt.zig", - "math/ceil.zig", - "math/copysign.zig", - "math/cos.zig", - "math/cosh.zig", - "math/exp.zig", - "math/exp2.zig", - "math/expm1.zig", - "math/expo2.zig", - "math/fabs.zig", - "math/floor.zig", - "math/fma.zig", - "math/frexp.zig", - "math/hypot.zig", - "math/ilogb.zig", - "math/index.zig", - "math/inf.zig", - "math/isfinite.zig", - "math/isinf.zig", - "math/isnan.zig", - "math/isnormal.zig", - "math/ln.zig", - "math/log.zig", - "math/log10.zig", - "math/log1p.zig", - "math/log2.zig", - "math/modf.zig", - "math/nan.zig", - "math/pow.zig", - "math/round.zig", - "math/scalbn.zig", - "math/signbit.zig", - "math/sin.zig", - "math/sinh.zig", - "math/sqrt.zig", - "math/tan.zig", - "math/tanh.zig", - "math/trunc.zig", - "mem.zig", - "net.zig", - "os/child_process.zig", - "os/darwin.zig", - "os/darwin_errno.zig", - "os/get_user_id.zig", - "os/index.zig", - "os/linux.zig", - "os/linux_errno.zig", - "os/linux_i386.zig", - "os/linux_x86_64.zig", - "os/path.zig", - "os/windows/error.zig", - "os/windows/index.zig", - "os/windows/util.zig", - "rand.zig", - "sort.zig", - "unicode.zig", - "special/bootstrap.zig", - "special/bootstrap_lib.zig", - "special/build_file_template.zig", - "special/build_runner.zig", - "special/builtin.zig", - "special/compiler_rt/aulldiv.zig", - "special/compiler_rt/aullrem.zig", - "special/compiler_rt/comparetf2.zig", - "special/compiler_rt/fixuint.zig", - "special/compiler_rt/fixunsdfdi.zig", - "special/compiler_rt/fixunsdfsi.zig", - "special/compiler_rt/fixunsdfti.zig", - "special/compiler_rt/fixunssfdi.zig", - "special/compiler_rt/fixunssfsi.zig", - "special/compiler_rt/fixunssfti.zig", - "special/compiler_rt/fixunstfdi.zig", - "special/compiler_rt/fixunstfsi.zig", - "special/compiler_rt/fixunstfti.zig", - "special/compiler_rt/index.zig", - "special/compiler_rt/udivmod.zig", - "special/compiler_rt/udivmoddi4.zig", - "special/compiler_rt/udivmodti4.zig", - "special/compiler_rt/udivti3.zig", - "special/compiler_rt/umodti3.zig", - "special/panic.zig", - "special/test_runner.zig", - }; - for (stdlib_files) |stdlib_file| { +pub fn installStdLib(b: &Builder, stdlib_files: []const u8) { + var it = mem.split(stdlib_files, ";"); + while (it.next()) |stdlib_file| { const src_path = %%os.path.join(b.allocator, "std", stdlib_file); const dest_path = %%os.path.join(b.allocator, "lib", "zig", "std", stdlib_file); b.installFile(src_path, dest_path); } } +pub fn installCHeaders(b: &Builder, c_header_files: []const u8) { + var it = mem.split(c_header_files, ";"); + while (it.next()) |c_header_file| { + const src_path = %%os.path.join(b.allocator, "c_headers", c_header_file); + const dest_path = %%os.path.join(b.allocator, "lib", "zig", "include", c_header_file); + b.installFile(src_path, dest_path); + } +} + fn nextValue(index: &usize, build_info: []const u8) -> []const u8 { const start = *index; while (build_info[*index] != '\n' and build_info[*index] != '\r') : (*index += 1) { } diff --git a/src/config.h.in b/src/config.h.in index 0712c008a6..4202e670ff 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -29,5 +29,7 @@ #define ZIG_CXX_COMPILER "@CMAKE_CXX_COMPILER@" #define ZIG_LLD_INCLUDE_PATH "@LLD_INCLUDE_DIRS@" #define ZIG_LLD_LIBRARIES "@LLD_LIBRARIES@" +#define ZIG_STD_FILES "@ZIG_STD_FILES@" +#define ZIG_C_HEADER_FILES "@ZIG_C_HEADER_FILES@" #endif diff --git a/src/main.cpp b/src/main.cpp index 4c606c95be..a3ca1bc164 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -267,7 +267,13 @@ static void add_package(CodeGen *g, CliPkg *cli_pkg, PackageTableEntry *pkg) { int main(int argc, char **argv) { if (argc == 2 && strcmp(argv[1], "BUILD_INFO") == 0) { - printf("%s\n%s\n%s\n%s\n", ZIG_CMAKE_BINARY_DIR, ZIG_CXX_COMPILER, ZIG_LLD_INCLUDE_PATH, ZIG_LLD_LIBRARIES); + printf("%s\n%s\n%s\n%s\n%s\n%s\n", + ZIG_CMAKE_BINARY_DIR, + ZIG_CXX_COMPILER, + ZIG_LLD_INCLUDE_PATH, + ZIG_LLD_LIBRARIES, + ZIG_STD_FILES, + ZIG_C_HEADER_FILES); return 0; }