Skip to content

Commit 7bdb820

Browse files
authored
Merge pull request #266 from layus/cache_generated_code
Cache generated code & Gen source archive
2 parents 7f83066 + 31e18bf commit 7bdb820

File tree

17 files changed

+206
-171
lines changed

17 files changed

+206
-171
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
[submodule "stdlib"]
22
path = stdlib
33
url = git://github.com/mozart/mozart2-stdlib.git
4+
[submodule "gtest"]
5+
path = vm/vm/test/gtest
6+
url = http://github.com/google/googletest

CMakeLists.txt

Lines changed: 47 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
11
cmake_minimum_required(VERSION 2.8)
2+
3+
# This needs to be before "project(..)".
4+
if(NOT DEFINED CMAKE_BUILD_TYPE)
5+
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release")
6+
endif()
7+
message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
8+
9+
210
project(MOZART CXX)
311

412
ENABLE_TESTING()
@@ -11,6 +19,13 @@ include(MozartProperties)
1119
set(MOZART_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
1220
set(MOZART_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}")
1321

22+
set(DEFAULT_MOZART_GENERATOR_FLAGS
23+
"--std=c++0x"
24+
"-Wno-invalid-noreturn"
25+
"-Wno-return-type"
26+
"-Wno-braced-scalar-init" # Silence warning for macro ATOMIC_FLAG_INIT in atomic_base.h
27+
)
28+
1429
# Some helpers when using MinGW
1530
if(MINGW)
1631
get_filename_component(CMAKE_MAKE_PROGRAM_PATH "${CMAKE_MAKE_PROGRAM}" PATH)
@@ -32,7 +47,9 @@ if(MINGW)
3247
set(DEFAULT_MOZART_GENERATOR_FLAGS
3348
"-I${MINGW_ROOT}/${GCC_ARCH_TRIPLE}/include/c++"
3449
"-I${MINGW_ROOT}/${GCC_ARCH_TRIPLE}/include/c++/${GCC_ARCH_TRIPLE}"
35-
"-I${MINGW_ROOT}/${GCC_ARCH_TRIPLE}/include")
50+
"-I${MINGW_ROOT}/${GCC_ARCH_TRIPLE}/include"
51+
${DEFAULT_MOZART_GENERATOR_FLAGS}
52+
)
3653

3754
set(BOOST_ROOT "${MINGW_ROOT}"
3855
CACHE PATH "Path where Boost is installed")
@@ -42,8 +59,6 @@ if(MINGW)
4259
enable_language(RC)
4360
set(CMAKE_RC_COMPILE_OBJECT
4461
"<CMAKE_RC_COMPILER> <FLAGS> -O coff <DEFINES> -i <SOURCE> -o <OBJECT>")
45-
else()
46-
set(DEFAULT_MOZART_GENERATOR_FLAGS "")
4762
endif()
4863

4964
# Some configuration
@@ -53,6 +68,22 @@ if(WIN32)
5368
set(DEFAULT_MOZART_GENERATOR_FLAGS "-DMOZART_WINDOWS=1" ${DEFAULT_MOZART_GENERATOR_FLAGS})
5469
endif()
5570

71+
# CMake does not allow to add dependencies to "builtin" targets like package_source.
72+
# We therefore wrap package_source in our own dist target.
73+
74+
if("${MOZART_BUILD_DIR}/" MATCHES "${MOZART_DIR}/.*")
75+
message(WARNING "You are compiling inside the source tree. Generating source tarballs will not work correctly.")
76+
endif()
77+
add_custom_target(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source)
78+
configure_file(cmake_local/MozartConfigVersion.cmake.in
79+
${CMAKE_CURRENT_BINARY_DIR}/cmake_local/MozartConfigVersion.cmake @ONLY)
80+
define_property(GLOBAL PROPERTY SRCS_INSTALLED_DIRS
81+
BRIEF_DOCS "List of source files"
82+
FULL_DOCS "List of source/dest pairs of path to be included in the source archive")
83+
set_property(GLOBAL APPEND PROPERTY SRCS_INSTALLED_DIRS
84+
"${CMAKE_CURRENT_SOURCE_DIR}" "/"
85+
"${CMAKE_CURRENT_BINARY_DIR}/cmake_local/" "/cmake_local/")
86+
5687
# The subdirectories which contain the real thing
5788

5889
add_subdirectory(vm)
@@ -111,6 +142,19 @@ set(CPACK_RPM_PACKAGE_ARCHITECTURE "${MOZART_PROP_PLATFORM_ARCH}")
111142
set(CPACK_RPM_PACKAGE_REQUIRES "tcl >= 8.5, tk >= 8.5, emacs")
112143
set(CPACK_RPM_PACKAGE_GROUP "Development/Languages")
113144

145+
# Configuration of the Source generator
146+
147+
set(CPACK_SOURCE_GENERATOR "ZIP")
148+
get_property(CPACK_SOURCE_INSTALLED_DIRECTORIES GLOBAL PROPERTY SRCS_INSTALLED_DIRS)
149+
set(CPACK_SOURCE_IGNORE_FILES
150+
"/\\\\.git"
151+
"\\\\.astbi$"
152+
"\\\\.ast$"
153+
"/bootcompiler/project/project/"
154+
"/bootcompiler/project/target/"
155+
"/bootcompiler/target/"
156+
)
157+
114158
# Configuration of Inno Setup files
115159

116160
if(WIN32)

boosthost/emulator/CMakeLists.txt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,13 @@ endif()
4040

4141
# Mozart VM library
4242

43-
include_directories("${MOZART_DIR}/vm/vm/main" "${MOZART_BUILD_DIR}/vm/vm/main")
43+
get_property(GENERATED_SOURCES_DIR GLOBAL PROPERTY GENERATED_SOURCES_DIR)
44+
include_directories("${MOZART_DIR}/vm/vm/main" "${GENERATED_SOURCES_DIR}")
4445

4546
# Mozart VM Boost environment library
4647

47-
include_directories("${MOZART_DIR}/vm/boostenv/main"
48-
"${MOZART_BUILD_DIR}/vm/boostenv/main")
48+
get_property(GENERATED_BOOSTSOURCES_DIR GLOBAL PROPERTY GENERATED_BOOSTSOURCES_DIR)
49+
include_directories("${MOZART_DIR}/vm/boostenv/main" "${GENERATED_BOOSTSOURCES_DIR}")
4950

5051

5152
# Compile the executable
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
2+
set(MOZART_PROP_OZ_VERSION "@MOZART_PROP_OZ_VERSION@")
3+
set(MOZART_PROP_OZ_DATE "@MOZART_PROP_OZ_DATE@")
4+

cmake_local/MozartProperties.cmake

Lines changed: 35 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,40 +14,49 @@ endif()
1414

1515
target_architecture(MOZART_PROP_PLATFORM_ARCH)
1616

17+
# For source tarballs, oz.version and os.date
18+
# are exported id MozartConfigVersion.cmake
19+
include(MozartConfigVersion
20+
RESULT_VARIABLE MOZART_CACHED_BUILD OPTIONAL)
21+
1722
# oz.version
1823

19-
execute_process(
20-
COMMAND ${GIT_EXECUTABLE} describe --dirty
21-
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
22-
OUTPUT_VARIABLE git_describe_output
23-
ERROR_QUIET
24-
OUTPUT_STRIP_TRAILING_WHITESPACE)
25-
26-
if("${git_describe_output}" MATCHES "^v[0-9].+-[0-9]+-g[0-9a-f]+(-dirty)?$")
27-
string(REGEX REPLACE "^v(.+)-([0-9]+)-g([0-9a-f]+)((-dirty)?)$" "\\1+build.\\2.\\3\\4"
28-
MOZART_PROP_OZ_VERSION "${git_describe_output}")
29-
elseif("${git_describe_output}" MATCHES "^v[0-9].+[0-9](-dirty)?$")
30-
string(REGEX REPLACE "^v(.+)$" "\\1"
31-
MOZART_PROP_OZ_VERSION "${git_describe_output}")
32-
else()
33-
message(WARNING "'git describe --dirty' did not return something sensible")
34-
set(MOZART_PROP_OZ_VERSION "unknown")
24+
if(NOT MOZART_CACHED_BUILD)
25+
execute_process(
26+
COMMAND ${GIT_EXECUTABLE} describe --dirty
27+
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
28+
OUTPUT_VARIABLE git_describe_output
29+
ERROR_QUIET
30+
OUTPUT_STRIP_TRAILING_WHITESPACE)
31+
32+
if("${git_describe_output}" MATCHES "^v[0-9].+-[0-9]+-g[0-9a-f]+(-dirty)?$")
33+
string(REGEX REPLACE "^v(.+)-([0-9]+)-g([0-9a-f]+)((-dirty)?)$" "\\1+build.\\2.\\3\\4"
34+
MOZART_PROP_OZ_VERSION "${git_describe_output}")
35+
elseif("${git_describe_output}" MATCHES "^v[0-9].+[0-9](-dirty)?$")
36+
string(REGEX REPLACE "^v(.+)$" "\\1"
37+
MOZART_PROP_OZ_VERSION "${git_describe_output}")
38+
else()
39+
message(WARNING "'git describe --dirty' did not return something sensible")
40+
set(MOZART_PROP_OZ_VERSION "unknown")
41+
endif()
42+
43+
unset(git_describe_output)
3544
endif()
3645

37-
unset(git_describe_output)
38-
3946
# oz.date
4047

41-
execute_process(
42-
COMMAND ${GIT_EXECUTABLE} log "--format=%aD" -1
43-
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
44-
OUTPUT_VARIABLE git_date_output
45-
ERROR_QUIET
46-
OUTPUT_STRIP_TRAILING_WHITESPACE)
48+
if(NOT MOZART_CACHED_BUILD)
49+
execute_process(
50+
COMMAND ${GIT_EXECUTABLE} log "--format=%aD" -1
51+
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
52+
OUTPUT_VARIABLE git_date_output
53+
ERROR_QUIET
54+
OUTPUT_STRIP_TRAILING_WHITESPACE)
4755

48-
set(MOZART_PROP_OZ_DATE "${git_date_output}")
56+
set(MOZART_PROP_OZ_DATE "${git_date_output}")
4957

50-
unset(git_date_output)
58+
unset(git_date_output)
59+
endif()
5160

5261
# Display which version we found
5362

lib/CMakeLists.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,9 @@ set(BOOTCOMPILER_DEFINES -D NO_GUMP)
7979
set(BOOTCOMPILER_BASEENV_DATA_FILE "${STAGE_0_CACHE}/baseenv.txt")
8080
set(BOOTCOMPILER_COMMAND
8181
${Java_JAVA_EXECUTABLE} -jar ${JAVA_OPTIONS} "${BOOTCOMPILER_JAR}")
82+
get_property(GENERATED_SOURCES_DIR GLOBAL PROPERTY GENERATED_SOURCES_DIR)
8283
set(BOOTCOMPILER_COMMON_OPTIONS
83-
-m "${MOZART_BUILD_DIR}/vm/vm/main/"
84+
-m "${GENERATED_SOURCES_DIR}/"
8485
${BOOTCOMPILER_DEFINES})
8586
set(BOOTCOMPILER_COMMON_DEPENDS
8687
gensources bootcompiler "${BOOTCOMPILER_JAR}")
@@ -102,7 +103,7 @@ add_custom_command(
102103
set(STAGE_0_OUTPUTS "${STAGE_0_BASE_OZF}")
103104

104105
foreach(FUNCTOR "${RUNTIME_FUNCTOR}" "${INIT_FUNCTOR}" ${SYS_FUNCTORS} ${COMPILER_FUNCTORS})
105-
if("${FUNCTOR}" MATCHES "${INIT_FUNCTOR}")
106+
if("${FUNCTOR}" STREQUAL "${INIT_FUNCTOR}")
106107
set(FUNCTOR_OZF "${STAGE_0_CACHE}/Init.ozf")
107108
else()
108109
get_filename_component(FUNCTOR_BASENAME ${FUNCTOR} NAME_WE)

vm/CMakeLists.txt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,6 @@ set(DEFAULT_LLVM_SRC_DIR "${ep_base}/Source/llvm")
99
set(DEFAULT_LLVM_BUILD_DIR "${ep_base}/Build/llvm")
1010
set(LLVM_SRC_DIR ${DEFAULT_LLVM_SRC_DIR} CACHE PATH "Path to LLVM sources (with Clang)")
1111
set(LLVM_BUILD_DIR ${DEFAULT_LLVM_BUILD_DIR} CACHE PATH "Path to LLVM build (with Clang)")
12-
set(DEFAULT_GTEST_SRC_DIR "${ep_base}/Source/gtest")
13-
set(DEFAULT_GTEST_BUILD_DIR "${ep_base}/Build/gtest")
14-
set(GTEST_SRC_DIR ${DEFAULT_GTEST_SRC_DIR} CACHE PATH "Path to GTest sources")
15-
set(GTEST_BUILD_DIR ${DEFAULT_GTEST_BUILD_DIR} CACHE PATH "Path to GTest build")
1612

1713
set(MOZART_GENERATOR_FLAGS "${DEFAULT_MOZART_GENERATOR_FLAGS}" CACHE STRING
1814
"Additional flags for the generator parser (clang)")

vm/boostenv/main/CMakeLists.txt

Lines changed: 39 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -33,61 +33,80 @@ endif()
3333

3434
# Mozart VM library
3535

36-
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../vm/main"
37-
"${CMAKE_CURRENT_BINARY_DIR}/../../vm/main")
36+
get_property(GENERATED_SOURCES_DIR GLOBAL PROPERTY GENERATED_SOURCES_DIR)
37+
include_directories("${MOZART_SOURCE_DIR}/vm/vm/main" "${GENERATED_SOURCES_DIR}")
38+
link_directories("${MOZART_BINARY_DIR}/vm/vm/main")
3839

39-
link_directories("${CMAKE_CURRENT_BINARY_DIR}/../../vm/main")
40-
41-
include_directories(${CMAKE_CURRENT_BINARY_DIR})
40+
set(GENERATED_BOOSTSOURCES_CACHED_DIR ${CMAKE_CURRENT_SOURCE_DIR}/cached/)
41+
set(GENERATED_BOOSTSOURCES_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/generated/)
4242

4343
# Generate sources
44+
find_program(clang_bin clang++)
4445

4546
add_custom_command(
46-
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/boostenv.gen
47+
OUTPUT ${GENERATED_BOOSTSOURCES_BINARY_DIR}/boostenv.gen
4748

4849
# First pass: generate data types and interfaces
49-
COMMAND ${LLVM_BUILD_DIR}/bin/clang++ "${CXX_STD_OPT}"
50-
-Wno-invalid-noreturn -Wno-return-type
51-
-o ${CMAKE_CURRENT_BINARY_DIR}/boostenv.ast
50+
COMMAND ${clang_bin}
51+
-o ${GENERATED_BOOSTSOURCES_BINARY_DIR}/boostenv.ast
5252
-I ${Boost_INCLUDE_DIRS}
5353
-I ${CMAKE_CURRENT_SOURCE_DIR}/../../vm/main
5454
-DMOZART_GENERATOR
5555
${MOZART_GENERATOR_FLAGS}
5656
${CMAKE_CURRENT_SOURCE_DIR}/boostenv.hh
5757
COMMAND generator intfimpl
58-
${CMAKE_CURRENT_BINARY_DIR}/boostenv.ast
59-
${CMAKE_CURRENT_BINARY_DIR}/
58+
${GENERATED_BOOSTSOURCES_BINARY_DIR}/boostenv.ast
59+
${GENERATED_BOOSTSOURCES_BINARY_DIR}/
6060

6161
# Second pass: generate builtin information
62-
COMMAND ${LLVM_BUILD_DIR}/bin/clang++ "${CXX_STD_OPT}"
63-
-Wno-invalid-noreturn -Wno-return-type
64-
-o ${CMAKE_CURRENT_BINARY_DIR}/boostenvmodules.astbi
62+
COMMAND ${clang_bin}
63+
-o ${GENERATED_BOOSTSOURCES_BINARY_DIR}/boostenvmodules.astbi
6564
-I ${Boost_INCLUDE_DIRS}
66-
-I ${CMAKE_CURRENT_BINARY_DIR}
65+
-I ${GENERATED_BOOSTSOURCES_BINARY_DIR}
6766
-I ${CMAKE_CURRENT_SOURCE_DIR}/../../vm/main
68-
-I ${CMAKE_CURRENT_BINARY_DIR}/../../vm/main
67+
-I ${GENERATED_BOOSTSOURCES_BINARY_DIR}/../../vm/main
6968
-DMOZART_BUILTIN_GENERATOR
7069
${MOZART_GENERATOR_FLAGS}
7170
${CMAKE_CURRENT_SOURCE_DIR}/boostenvmodules.hh
7271
COMMAND generator builtins
73-
${CMAKE_CURRENT_BINARY_DIR}/boostenvmodules.astbi
74-
${CMAKE_CURRENT_BINARY_DIR}/
72+
${GENERATED_BOOSTSOURCES_BINARY_DIR}/boostenvmodules.astbi
73+
${GENERATED_BOOSTSOURCES_BINARY_DIR}/
7574
boostenvbuiltins
7675

7776
# Tag
78-
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/boostenv.gen
77+
COMMAND ${CMAKE_COMMAND} -E touch ${GENERATED_BOOSTSOURCES_BINARY_DIR}/boostenv.gen
7978

8079
DEPENDS generator gensources
8180
IMPLICIT_DEPENDS CXX "${CMAKE_CURRENT_SOURCE_DIR}/boostenvmodules.hh"
8281
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
8382
COMMENT "Generate sources for boostenv"
8483
VERBATIM)
8584

85+
86+
# Use the cached files if they exist.
87+
88+
if(EXISTS ${GENERATED_BOOSTSOURCES_CACHED_DIR}/boostenv.gen)
89+
set(GENERATED_BOOSTSOURCES_DIR ${GENERATED_BOOSTSOURCES_CACHED_DIR})
90+
else()
91+
set(GENERATED_BOOSTSOURCES_DIR ${GENERATED_BOOSTSOURCES_BINARY_DIR})
92+
file(MAKE_DIRECTORY ${GENERATED_BOOSTSOURCES_BINARY_DIR})
93+
endif()
94+
set_property(GLOBAL PROPERTY GENERATED_BOOSTSOURCES_DIR "${GENERATED_BOOSTSOURCES_DIR}")
95+
8696
add_custom_target(genboostsources
87-
DEPENDS boostenv.gen
97+
DEPENDS ${GENERATED_BOOSTSOURCES_DIR}/boostenv.gen
8898
VERBATIM)
8999

100+
101+
# Include the generated files in the source archive.
102+
103+
set_property(GLOBAL APPEND PROPERTY SRCS_INSTALLED_DIRS
104+
"${GENERATED_BOOSTSOURCES_DIR}" "/vm/boostenv/main/cached/")
105+
106+
add_dependencies(dist genboostsources)
107+
90108
# Boost environment library
109+
include_directories(${GENERATED_BOOSTSOURCES_DIR})
91110

92111
add_library(mozartvmboost boostvm.cc boostenvmodules.cc)
93112
add_dependencies(mozartvmboost genboostsources)

vm/generator/CMakeLists.txt

Lines changed: 2 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,3 @@
1-
if("${LLVM_SRC_DIR}" STREQUAL "${DEFAULT_LLVM_SRC_DIR}" AND
2-
NOT EXISTS "${LLVM_BUILD_DIR}/bin/clang++")
3-
4-
separate_arguments(LLVM_CMAKE_ARGS UNIX_COMMAND
5-
"-DCMAKE_BUILD_TYPE=Release
6-
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
7-
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
8-
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
9-
-DCMAKE_CXX_FLAGS=\"${CMAKE_CXX_FLAGS}\""
10-
)
11-
12-
ExternalProject_Add(llvm
13-
SVN_REPOSITORY http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_371/final
14-
CMAKE_ARGS ${LLVM_CMAKE_ARGS}
15-
INSTALL_COMMAND ""
16-
TEST_COMMAND ""
17-
)
18-
ExternalProject_Add_Step(llvm download_clang
19-
COMMAND svn co http://llvm.org/svn/llvm-project/cfe/tags/RELEASE_371/final ${ep_base}/Source/llvm/tools/clang
20-
DEPENDEES download
21-
DEPENDERS update
22-
)
23-
ExternalProject_Add_Step(llvm update_clang
24-
COMMAND svn update ${ep_base}/Source/llvm/tools/clang
25-
DEPENDEES update
26-
DEPENDERS build
27-
)
1+
if(NOT MOZART_CACHED_BUILD)
2+
add_subdirectory(main)
283
endif()
29-
add_subdirectory(main)

vm/generator/main/CMakeLists.txt

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,13 @@
1-
set(CLANG_SRC_DIR "${LLVM_SRC_DIR}/tools/clang")
2-
set(CLANG_BUILD_DIR "${LLVM_BUILD_DIR}/tools/clang")
31

4-
add_definitions(-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS)
2+
find_package(LLVM REQUIRED CONFIG)
3+
message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
4+
message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")
55

6-
set(CMAKE_CXX_FLAGS "-Wall -Wno-enum-compare -Wno-strict-aliasing -std=gnu++0x ${CMAKE_CXX_FLAGS}")
6+
find_package(Clang REQUIRED CONFIG)
7+
message(STATUS "Found Clang using ClangConfig.cmake in: ${Clang_DIR}")
78

8-
# Depending on the platform and version of clang, the clang library will
9-
# be named libclang or liblibclang. Now we detect that.
10-
find_library(CLANG_LIBRARY
11-
NAMES clang libclang
12-
PATHS "${LLVM_BUILD_DIR}/lib"
13-
NO_DEFAULT_PATH)
14-
if("${CLANG_LIBRARY}" MATCHES "CLANG_LIBRARY-NOTFOUND")
15-
message(FATAL_ERROR "Could not find clang library in ${LLVM_BUILD_DIR}")
16-
endif()
9+
#include_directories(${LLVM_INCLUDE_DIRS})
10+
#add_definitions(${LLVM_DEFINITIONS})
1711

18-
include_directories(
19-
"${LLVM_SRC_DIR}/include"
20-
"${LLVM_BUILD_DIR}/include"
21-
"${CLANG_SRC_DIR}/include"
22-
"${CLANG_BUILD_DIR}/include")
23-
link_directories("${LLVM_BUILD_DIR}/lib")
24-
add_executable(generator generator.cc interfaces.cc implementations.cc
25-
builtins.cc utils.cc)
26-
target_link_libraries(generator "${CLANG_LIBRARY}")
12+
add_executable(generator EXCLUDE_FROM_ALL generator.cc interfaces.cc implementations.cc builtins.cc utils.cc)
13+
target_link_libraries(generator clangFrontend clangAST)

0 commit comments

Comments
 (0)