Commit 41b588547c
Changed files (4)
cmake/Findllvm.cmake
@@ -80,32 +80,51 @@ else()
"c:/msys64/mingw64/bin"
"C:/Libraries/llvm-5.0.0/bin")
- execute_process(
- COMMAND ${LLVM_CONFIG_EXE} --libs
- OUTPUT_VARIABLE LLVM_LIBRARIES
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
- execute_process(
- COMMAND ${LLVM_CONFIG_EXE} --system-libs
- OUTPUT_VARIABLE LLVM_SYSTEM_LIBS
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
- execute_process(
- COMMAND ${LLVM_CONFIG_EXE} --libdir
- OUTPUT_VARIABLE LLVM_LIBDIRS
- OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(NOT(CMAKE_BUILD_TYPE STREQUAL "Debug"))
+ execute_process(
+ COMMAND ${LLVM_CONFIG_EXE} --libfiles --link-static
+ OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}")
+
+ execute_process(
+ COMMAND ${LLVM_CONFIG_EXE} --system-libs --link-static
+ OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}")
+
+ execute_process(
+ COMMAND ${LLVM_CONFIG_EXE} --libdir --link-static
+ OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}")
+ endif()
+ if(NOT LLVM_LIBRARIES)
+ execute_process(
+ COMMAND ${LLVM_CONFIG_EXE} --libs
+ OUTPUT_VARIABLE LLVM_LIBRARIES
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ execute_process(
+ COMMAND ${LLVM_CONFIG_EXE} --system-libs
+ OUTPUT_VARIABLE LLVM_SYSTEM_LIBS
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ execute_process(
+ COMMAND ${LLVM_CONFIG_EXE} --libdir
+ OUTPUT_VARIABLE LLVM_LIBDIRS
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ endif()
execute_process(
COMMAND ${LLVM_CONFIG_EXE} --includedir
OUTPUT_VARIABLE LLVM_INCLUDE_DIRS
OUTPUT_STRIP_TRAILING_WHITESPACE)
- find_library(LLVM_LIBRARY NAMES LLVM)
-
set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS})
- if(LLVM_LIBRARY AND NOT LLVM_LIBRARIES)
- set(LLVM_LIBRARIES ${LLVM_LIBRARY})
+ if(NOT LLVM_LIBRARIES)
+ find_library(LLVM_LIBRARIES NAMES LLVM LLVM-5.0 LLVM-5)
endif()
link_directories("${CMAKE_PREFIX_PATH}/lib")
src/analyze.cpp
@@ -3189,6 +3189,8 @@ ImportTableEntry *add_source_file(CodeGen *g, PackageTableEntry *package, Buf *a
if (is_pub) {
if (buf_eql_str(proto_name, "main")) {
g->have_pub_main = true;
+ g->windows_subsystem_windows = false;
+ g->windows_subsystem_console = true;
} else if (buf_eql_str(proto_name, "panic")) {
g->have_pub_panic = true;
}
@@ -3196,6 +3198,8 @@ ImportTableEntry *add_source_file(CodeGen *g, PackageTableEntry *package, Buf *a
g->libc_link_lib != nullptr)
{
g->have_c_main = true;
+ g->windows_subsystem_windows = false;
+ g->windows_subsystem_console = true;
}
}
src/os.hpp
@@ -81,7 +81,7 @@ bool os_is_sep(uint8_t c);
#endif
#if defined(ZIG_OS_WINDOWS)
-#define ZIG_PRI_usize "Iu"
+#define ZIG_PRI_usize "I64u"
#define ZIG_PRI_u64 "I64u"
#define ZIG_PRI_llu "I64u"
#define ZIG_PRI_x64 "I64x"
CMakeLists.txt
@@ -352,9 +352,14 @@ else()
endif()
set(EXE_LDFLAGS " ")
+if(MINGW)
+ set(EXE_LDFLAGS "-static -static-libgcc -static-libstdc++")
+else()
+ set(EXE_LDFLAGS " ")
+endif()
if(ZIG_TEST_COVERAGE)
set(EXE_CFLAGS "${EXE_CFLAGS} -fprofile-arcs -ftest-coverage")
- set(EXE_LDFLAGS "-fprofile-arcs -ftest-coverage")
+ set(EXE_LDFLAGS "${EXE_LDFLAGS} -fprofile-arcs -ftest-coverage")
endif()
add_executable(zig ${ZIG_SOURCES})