annotate CMakeLists.txt @ 749:db2dd9861600

Add basic CMake build file.
author Christian Kamm <kamm incasoftware de>
date Sun, 02 Nov 2008 21:47:31 +0100
parents
children d05fc504a3a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
749
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
1 project (ldc)
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
2
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
3 set (LDC_SOURCE_FILES
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
4 dmd/access.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
5 dmd/array.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
6 dmd/arrayop.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
7 dmd/attrib.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
8 dmd/cast.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
9 dmd/class.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
10 dmd/clone.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
11 dmd/cond.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
12 dmd/constfold.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
13 dmd/dchar.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
14 dmd/declaration.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
15 dmd/delegatize.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
16 dmd/doc.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
17 dmd/dsymbol.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
18 dmd/dump.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
19 dmd/entity.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
20 dmd/enum.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
21 dmd/expression.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
22 dmd/func.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
23 dmd/gnuc.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
24 dmd/hdrgen.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
25 dmd/html.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
26 dmd/id.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
27 dmd/identifier.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
28 dmd/impcnvtab.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
29 dmd/import.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
30 dmd/inifile.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
31 dmd/init.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
32 dmd/inline.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
33 dmd/interpret.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
34 dmd/lexer.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
35 dmd/lstring.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
36 dmd/macro.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
37 dmd/man.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
38 dmd/mangle.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
39 dmd/mars.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
40 dmd/mem.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
41 dmd/module.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
42 dmd/mtype.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
43 dmd/opover.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
44 dmd/optimize.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
45 dmd/parse.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
46 dmd/root.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
47 dmd/scope.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
48 dmd/statement.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
49 dmd/staticassert.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
50 dmd/stringtable.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
51 dmd/struct.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
52 dmd/template.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
53 dmd/unialpha.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
54 dmd/utf.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
55 dmd/version.c
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
56 gen/aa.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
57 gen/arrays.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
58 gen/asmstmt.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
59 gen/binops.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
60 gen/classes.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
61 gen/complex.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
62 gen/dvalue.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
63 gen/dwarftypes.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
64 gen/functions.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
65 gen/irstate.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
66 gen/linker.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
67 gen/llvmhelpers.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
68 gen/logger.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
69 gen/optimizer.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
70 gen/runtime.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
71 gen/statements.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
72 gen/structs.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
73 gen/tocall.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
74 gen/tocsym.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
75 gen/todebug.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
76 gen/todt.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
77 gen/toir.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
78 gen/tollvm.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
79 gen/toobj.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
80 gen/typinf.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
81 ir/irfunction.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
82 ir/irlandingpad.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
83 ir/irmodule.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
84 ir/irstruct.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
85 ir/irsymbol.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
86 ir/irtype.cpp
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
87 ir/irvar.cpp)
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
88
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
89 add_executable (ldc ${LDC_SOURCE_FILES})
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
90 set_source_files_properties (${LDC_SOURCE_FILES} PROPERTIES LANGUAGE CXX)
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
91
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
92 execute_process (COMMAND llvm-config --cxxflags OUTPUT_VARIABLE LLVM_CXXFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
93 #execute_process (COMMAND llvm-config --includedir OUTPUT_VARIABLE LLVM_INCLUDE_DIR)
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
94 #execute_process (COMMAND llvm-config --libs bitwriter linker ipo instrumentation backend OUTPUT_VARIABLE LLVM_LIBS OUTPUT_STRIP_TRAILING_WHITESPACE)
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
95 execute_process (COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/config.guess OUTPUT_VARIABLE DEFAULT_TRIPLE OUTPUT_STRIP_TRAILING_WHITESPACE)
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
96
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
97 set (LDC_DEFINES
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
98 -DIN_LLVM
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
99 -D_DH
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
100 -DOPAQUE_VTBLS
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
101 -DUSE_BOEHM_GC=0
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
102 -DDMDV1
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
103 -DPOSIX=1
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
104 -DDEFAULT_TARGET_TRIPLE=\\"${DEFAULT_TRIPLE}\\"
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
105 -DX86_REVERSE_PARAMS=1
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
106 -DX86_PASS_IN_EAX=1)
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
107
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
108 # passing CXXFLAGS here is not good style
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
109 add_definitions (${LDC_DEFINES} ${LLVM_CXXFLAGS})
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
110 include_directories (. dmd)
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
111
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
112 # this is hackish, but works
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
113 target_link_libraries (ldc "`llvm-config --ldflags` `llvm-config --libs bitwriter linker ipo instrumentation backend`")
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
114
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
115 #TODO: POSIX detection, runtime build