authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2015-08-05 15:23:15-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2015-08-05 15:23:15-07:00
log50f0ed918c4f5c70685752188b6a3853fc7205b9
tree3b157189c591f0b297271b1119050d1f87894aaa
parent8e08cf4bec80b87a7a22a18086a3db5c2c0f1772

link against LLVM


6 files changed, 78 insertions(+), 0 deletions(-)

.gitignore created+1
...@@ -0,0 +1 @@
1build/
CMakeLists.txt created+41
...@@ -0,0 +1,41 @@
1cmake_minimum_required(VERSION 2.8)
2
3set(CMAKE_BUILD_TYPE "Debug" CACHE STRING
4 "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." FORCE)
5
6project(zig C)
7set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
8
9set(ZIG_VERSION_MAJOR 1)
10set(ZIG_VERSION_MINOR 0)
11set(ZIG_VERSION_PATCH 0)
12set(ZIG_VERSION "${ZIG_VERSION_MAJOR}.${ZIG_VERSION_MINOR}.${ZIG_VERSION_PATCH}")
13message("Configuring zig version ${ZIG_VERSION}")
14
15find_package(llvm)
16include_directories(${LLVM_INCLUDE_DIR})
17
18set(ZIG_SOURCES
19 "${CMAKE_SOURCE_DIR}/src/main.c"
20)
21
22set(CONFIGURE_OUT_FILE "${CMAKE_BINARY_DIR}/config.h")
23configure_file (
24 "${CMAKE_SOURCE_DIR}/src/config.h.in"
25 ${CONFIGURE_OUT_FILE}
26)
27
28set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Wno-unused-variable -Wno-unused-but-set-variable")
29
30set(EXE_CFLAGS "-std=c11 -Werror -Wall -Werror=strict-prototypes -Werror=old-style-definition -Werror=missing-prototypes")
31set(TEST_CFLAGS "-std=c99 -Werror -Wall")
32
33
34add_executable(zig ${ZIG_SOURCES})
35set_target_properties(zig PROPERTIES
36 LINKER_LANGUAGE C
37 COMPILE_FLAGS ${EXE_CFLAGS})
38target_link_libraries(zig LINK_PUBLIC
39 ${LLVM_LIBRARIES}
40)
41install(TARGETS zig DESTINATION bin)
README.md+1
...@@ -0,0 +1 @@...@@ -0,0 +1 @@
1# zig lang
cmake/Findllvm.cmake created+21
...@@ -0,0 +1,21 @@
1# Copyright (c) 2014 Andrew Kelley
2# This file is MIT licensed.
3# See http://opensource.org/licenses/MIT
4
5# LLVM_FOUND
6# LLVM_INCLUDE_DIR
7# LLVM_LIBRARIES
8
9find_path(LLVM_INCLUDE_DIR NAMES llvm-c/Core.h)
10
11find_program(LLVM_CONFIG_EXE llvm-config)
12
13execute_process(
14 COMMAND ${LLVM_CONFIG_EXE} --libs
15 OUTPUT_VARIABLE LLVM_LIBRARIES
16 OUTPUT_STRIP_TRAILING_WHITESPACE)
17
18include(FindPackageHandleStandardArgs)
19find_package_handle_standard_args(LLVM DEFAULT_MSG LLVM_LIBRARIES LLVM_INCLUDE_DIR)
20
21mark_as_advanced(LLVM_INCLUDE_DIR LLVM_LIBRARIES)
src/config.h.in created+9
...@@ -0,0 +1,9 @@
1#ifndef ZIG_CONFIG_H
2#define ZIG_CONFIG_H
3
4#define ZIG_VERSION_MAJOR @ZIG_VERSION_MAJOR@
5#define ZIG_VERSION_MINOR @ZIG_VERSION_MINOR@
6#define ZIG_VERSION_PATCH @ZIG_VERSION_PATCH@
7#define ZIG_VERSION_STRING "@ZIG_VERSION@"
8
9#endif
src/main.c created+5
...@@ -0,0 +1,5 @@
1#include <stdio.h>
2
3int main(int argc, char **argv) {
4 return 0;
5}