authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-03-30 13:20:13-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-03-30 13:20:13-04:00
logf586acabdcc4adaeda7bc278463c20e4033e8cc9
tree5b94df731d3515a56da9aaf233d59cf6398263eb
parentedca1739975f69a695d1ee12ba88ebca1778fefb

add ZIG_STATIC cmake option

it's not compatible with glibc but it works with musl

2 files changed, 4 insertions(+), 1 deletions(-)

CMakeLists.txt+3
...@@ -35,6 +35,7 @@ set(ZIG_LIBC_STATIC_LIB_DIR "" CACHE STRING "Default native target libc director...@@ -35,6 +35,7 @@ set(ZIG_LIBC_STATIC_LIB_DIR "" CACHE STRING "Default native target libc director
35set(ZIG_LIBC_INCLUDE_DIR "/usr/include" CACHE STRING "Default native target libc include directory")35set(ZIG_LIBC_INCLUDE_DIR "/usr/include" CACHE STRING "Default native target libc include directory")
36set(ZIG_DYNAMIC_LINKER "" CACHE STRING "Override dynamic linker for native target")36set(ZIG_DYNAMIC_LINKER "" CACHE STRING "Override dynamic linker for native target")
37set(ZIG_EACH_LIB_RPATH off CACHE BOOL "Add each dynamic library to rpath for native target")37set(ZIG_EACH_LIB_RPATH off CACHE BOOL "Add each dynamic library to rpath for native target")
38set(ZIG_STATIC off CACHE BOOL "Attempt to build a static zig executable (not compatible with glibc)")
3839
39string(REGEX REPLACE "\\\\" "\\\\\\\\" ZIG_LIBC_LIB_DIR_ESCAPED "${ZIG_LIBC_LIB_DIR}")40string(REGEX REPLACE "\\\\" "\\\\\\\\" ZIG_LIBC_LIB_DIR_ESCAPED "${ZIG_LIBC_LIB_DIR}")
40string(REGEX REPLACE "\\\\" "\\\\\\\\" ZIG_LIBC_STATIC_LIB_DIR_ESCAPED "${ZIG_LIBC_STATIC_LIB_DIR}")41string(REGEX REPLACE "\\\\" "\\\\\\\\" ZIG_LIBC_STATIC_LIB_DIR_ESCAPED "${ZIG_LIBC_STATIC_LIB_DIR}")
...@@ -698,6 +699,8 @@ if(MINGW)...@@ -698,6 +699,8 @@ if(MINGW)
698 set(EXE_LDFLAGS "-static -static-libgcc -static-libstdc++")699 set(EXE_LDFLAGS "-static -static-libgcc -static-libstdc++")
699elseif(MSVC)700elseif(MSVC)
700 set(EXE_LDFLAGS "/STACK:16777216")701 set(EXE_LDFLAGS "/STACK:16777216")
702elseif(ZIG_STATIC)
703 set(EXE_LDFLAGS "-static")
701else()704else()
702 set(EXE_LDFLAGS " ")705 set(EXE_LDFLAGS " ")
703endif()706endif()
cmake/Findllvm.cmake+1-1
...@@ -15,7 +15,7 @@ find_program(LLVM_CONFIG_EXE...@@ -15,7 +15,7 @@ find_program(LLVM_CONFIG_EXE
15 "c:/msys64/mingw64/bin"15 "c:/msys64/mingw64/bin"
16 "C:/Libraries/llvm-6.0.0/bin")16 "C:/Libraries/llvm-6.0.0/bin")
1717
18if(NOT(CMAKE_BUILD_TYPE STREQUAL "Debug"))18if(NOT(CMAKE_BUILD_TYPE STREQUAL "Debug") OR ZIG_STATIC)
19 execute_process(19 execute_process(
20 COMMAND ${LLVM_CONFIG_EXE} --libfiles --link-static20 COMMAND ${LLVM_CONFIG_EXE} --libfiles --link-static
21 OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES21 OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES