11include_guard (GLOBAL )
22
3- set (ZIG_TOOLCHAIN_VERSION "0.1.1 " )
3+ set (ZIG_TOOLCHAIN_VERSION "0.1.3 " )
44
55if (CMAKE_GENERATOR MATCHES "Visual Studio" )
66 message (FATAL_ERROR "Zig Toolchain: Visual Studio generator is not supported. Please use '-G Ninja' or '-G MinGW Makefiles'." )
@@ -11,7 +11,7 @@ if(NOT ZIG_COMPILER)
1111 message (FATAL_ERROR "Zig Toolchain: Zig compiler not found. Please install Zig and ensure it is in your PATH." )
1212endif ()
1313execute_process (
14- COMMAND zig version
14+ COMMAND " ${ZIG_COMPILER} " version
1515 OUTPUT_VARIABLE ZIG_COMPILER_VERSION
1616 OUTPUT_STRIP_TRAILING_WHITESPACE
1717 RESULT_VARIABLE ZIG_VERSION_RESULT
7474endif ()
7575message (STATUS "Zig Toolchain: v${ZIG_COMPILER_VERSION} → ${ZIG_TARGET} " )
7676
77- set (ZIG_MCPU "" CACHE STRING "Target CPU architecture " )
78- set (ZIG_MCPU_FEATURES "" CACHE STRING "CPU features to enable/disable " )
77+ set (ZIG_MCPU "" CACHE STRING "Target CPU (e.g. 'baseline', 'native', 'cortex_a53'). See: zig targets " )
78+ set (ZIG_MCPU_FEATURES "" CACHE STRING "CPU feature modifiers appended directly to -mcpu=<cpu>, e.g. '+avx2-sse4_1'. Each feature must start with + or -. " )
7979set (ZIG_COMPILER_FLAGS "" CACHE STRING "Additional compilation flags" )
8080
8181set (ZIG_WRAPPER_ARGS "" )
@@ -98,7 +98,7 @@ set(ZIG_CC_PREFIX "")
9898if (ZIG_USE_CCACHE)
9999 find_program (CCACHE_TOOL ccache )
100100 if (CCACHE_TOOL)
101- set (ZIG_CC_PREFIX "${CCACHE_TOOL} " )
101+ set (ZIG_CC_PREFIX "\" ${CCACHE_TOOL} \" " )
102102 message (STATUS "Zig Toolchain: ccache enabled at ${CCACHE_TOOL} " )
103103 else ()
104104 message (WARNING "Zig Toolchain: ZIG_USE_CCACHE is ON but 'ccache' was not found in PATH." )
@@ -118,32 +118,32 @@ else()
118118 set (ARGS "\" $@\" " )
119119endif ()
120120
121- file (WRITE "${ZIG_SHIMS_DIR} /zig-cc${EXT} " "${HEADER} \n ${ZIG_CC_PREFIX} zig cc -target ${ZIG_TARGET} ${ZIG_WRAPPER_ARGS} ${ARGS} \n " )
122- file (WRITE "${ZIG_SHIMS_DIR} /zig-c++${EXT} " "${HEADER} \n ${ZIG_CC_PREFIX} zig c++ -target ${ZIG_TARGET} ${ZIG_WRAPPER_ARGS} ${ARGS} \n " )
123- file (WRITE "${ZIG_SHIMS_DIR} /zig-ar${EXT} " "${HEADER} \n zig ar ${ARGS} \n " )
124- file (WRITE "${ZIG_SHIMS_DIR} /zig-rc${EXT} " "${HEADER} \n zig rc ${ARGS} \n " )
125- file (WRITE "${ZIG_SHIMS_DIR} /zig-ranlib${EXT} " "${HEADER} \n zig ranlib ${ARGS} \n " )
121+ file (WRITE "${ZIG_SHIMS_DIR} /zig-cc${EXT} " "${HEADER} \n ${ZIG_CC_PREFIX} \" ${ZIG_COMPILER} \" cc -target ${ZIG_TARGET} ${ZIG_WRAPPER_ARGS} ${ARGS} \n " )
122+ file (WRITE "${ZIG_SHIMS_DIR} /zig-c++${EXT} " "${HEADER} \n ${ZIG_CC_PREFIX} \" ${ZIG_COMPILER} \" c++ -target ${ZIG_TARGET} ${ZIG_WRAPPER_ARGS} ${ARGS} \n " )
123+ file (WRITE "${ZIG_SHIMS_DIR} /zig-ar${EXT} " "${HEADER} \n\" ${ZIG_COMPILER} \" ar ${ARGS} \n " )
124+ file (WRITE "${ZIG_SHIMS_DIR} /zig-rc${EXT} " "${HEADER} \n\" ${ZIG_COMPILER} \" rc ${ARGS} \n " )
125+ file (WRITE "${ZIG_SHIMS_DIR} /zig-ranlib${EXT} " "${HEADER} \n\" ${ZIG_COMPILER} \" ranlib ${ARGS} \n " )
126126if (NOT CMAKE_HOST_WIN32 )
127127 execute_process (COMMAND chmod +x
128- "${ZIG_SHIMS_DIR} /zig-cc"
129- "${ZIG_SHIMS_DIR} /zig-c++"
130- "${ZIG_SHIMS_DIR} /zig-ar"
131- "${ZIG_SHIMS_DIR} /zig-rc"
132- "${ZIG_SHIMS_DIR} /zig-ranlib"
128+ "${ZIG_SHIMS_DIR} /zig-cc${EXT} "
129+ "${ZIG_SHIMS_DIR} /zig-c++${EXT} "
130+ "${ZIG_SHIMS_DIR} /zig-ar${EXT} "
131+ "${ZIG_SHIMS_DIR} /zig-rc${EXT} "
132+ "${ZIG_SHIMS_DIR} /zig-ranlib${EXT} "
133133 )
134134endif ()
135135
136- # unsupported linker arg: --dependency-file
137- if (CMAKE_HOST_WIN32 )
138- set (CMAKE_C_LINKER_DEPFILE_SUPPORTED FALSE )
139- set (CMAKE_CXX_LINKER_DEPFILE_SUPPORTED FALSE )
140- endif ()
141-
142136set (CMAKE_C_COMPILER "${ZIG_SHIMS_DIR} /zig-cc${EXT} " )
143137set (CMAKE_CXX_COMPILER "${ZIG_SHIMS_DIR} /zig-c++${EXT} " )
144138set (CMAKE_AR "${ZIG_SHIMS_DIR} /zig-ar${EXT} " CACHE FILEPATH "Archiver" FORCE )
145139set (CMAKE_RANLIB "${ZIG_SHIMS_DIR} /zig-ranlib${EXT} " CACHE FILEPATH "Ranlib" FORCE )
146140
141+ if (CMAKE_HOST_WIN32 )
142+ # unsupported linker arg: --dependency-file
143+ set (CMAKE_C_LINKER_DEPFILE_SUPPORTED FALSE )
144+ set (CMAKE_CXX_LINKER_DEPFILE_SUPPORTED FALSE )
145+ endif ()
146+
147147if (CMAKE_SYSTEM_NAME MATCHES "Windows" )
148148 set (CMAKE_RC_COMPILER "${ZIG_SHIMS_DIR} /zig-rc${EXT} " CACHE FILEPATH "Resource Compiler" FORCE )
149149 # Explicitly specify MSVC syntax because zig rc only supports this format
0 commit comments