kamm@749: project (ldc) kamm@749: kamm@749: set (LDC_SOURCE_FILES kamm@749: dmd/access.c kamm@749: dmd/array.c kamm@749: dmd/arrayop.c kamm@749: dmd/attrib.c kamm@749: dmd/cast.c kamm@749: dmd/class.c kamm@749: dmd/clone.c kamm@749: dmd/cond.c kamm@749: dmd/constfold.c kamm@749: dmd/dchar.c kamm@749: dmd/declaration.c kamm@749: dmd/delegatize.c kamm@749: dmd/doc.c kamm@749: dmd/dsymbol.c kamm@749: dmd/dump.c kamm@749: dmd/entity.c kamm@749: dmd/enum.c kamm@749: dmd/expression.c kamm@749: dmd/func.c kamm@749: dmd/gnuc.c kamm@749: dmd/hdrgen.c kamm@749: dmd/html.c kamm@749: dmd/id.c kamm@749: dmd/identifier.c kamm@749: dmd/impcnvtab.c kamm@749: dmd/import.c kamm@749: dmd/inifile.c kamm@749: dmd/init.c kamm@749: dmd/inline.c kamm@749: dmd/interpret.c kamm@749: dmd/lexer.c kamm@749: dmd/lstring.c kamm@749: dmd/macro.c kamm@749: dmd/man.c kamm@749: dmd/mangle.c kamm@749: dmd/mars.c kamm@749: dmd/mem.c kamm@749: dmd/module.c kamm@749: dmd/mtype.c kamm@749: dmd/opover.c kamm@749: dmd/optimize.c kamm@749: dmd/parse.c kamm@749: dmd/root.c kamm@749: dmd/scope.c kamm@749: dmd/statement.c kamm@749: dmd/staticassert.c kamm@749: dmd/stringtable.c kamm@749: dmd/struct.c kamm@749: dmd/template.c kamm@749: dmd/unialpha.c kamm@749: dmd/utf.c kamm@749: dmd/version.c kamm@749: gen/aa.cpp kamm@749: gen/arrays.cpp kamm@749: gen/asmstmt.cpp kamm@749: gen/binops.cpp kamm@749: gen/classes.cpp kamm@749: gen/complex.cpp kamm@749: gen/dvalue.cpp kamm@749: gen/dwarftypes.cpp kamm@749: gen/functions.cpp kamm@749: gen/irstate.cpp kamm@749: gen/linker.cpp kamm@749: gen/llvmhelpers.cpp kamm@749: gen/logger.cpp kamm@749: gen/optimizer.cpp kamm@749: gen/runtime.cpp kamm@749: gen/statements.cpp kamm@749: gen/structs.cpp kamm@749: gen/tocall.cpp kamm@749: gen/tocsym.cpp kamm@749: gen/todebug.cpp kamm@749: gen/todt.cpp kamm@749: gen/toir.cpp kamm@749: gen/tollvm.cpp kamm@749: gen/toobj.cpp kamm@749: gen/typinf.cpp kamm@749: ir/irfunction.cpp kamm@749: ir/irlandingpad.cpp kamm@749: ir/irmodule.cpp kamm@749: ir/irstruct.cpp kamm@749: ir/irsymbol.cpp kamm@749: ir/irtype.cpp kamm@749: ir/irvar.cpp) kamm@749: kamm@749: add_executable (ldc ${LDC_SOURCE_FILES}) kamm@749: set_source_files_properties (${LDC_SOURCE_FILES} PROPERTIES LANGUAGE CXX) kamm@749: kamm@749: execute_process (COMMAND llvm-config --cxxflags OUTPUT_VARIABLE LLVM_CXXFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) kamm@749: #execute_process (COMMAND llvm-config --includedir OUTPUT_VARIABLE LLVM_INCLUDE_DIR) kamm@749: #execute_process (COMMAND llvm-config --libs bitwriter linker ipo instrumentation backend OUTPUT_VARIABLE LLVM_LIBS OUTPUT_STRIP_TRAILING_WHITESPACE) kamm@749: execute_process (COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/config.guess OUTPUT_VARIABLE DEFAULT_TRIPLE OUTPUT_STRIP_TRAILING_WHITESPACE) kamm@749: kamm@749: set (LDC_DEFINES kamm@749: -DIN_LLVM kamm@749: -D_DH kamm@749: -DOPAQUE_VTBLS kamm@749: -DUSE_BOEHM_GC=0 kamm@749: -DDMDV1 kamm@749: -DPOSIX=1 kamm@749: -DDEFAULT_TARGET_TRIPLE=\\"${DEFAULT_TRIPLE}\\" kamm@749: -DX86_REVERSE_PARAMS=1 kamm@749: -DX86_PASS_IN_EAX=1) kamm@749: kamm@749: # passing CXXFLAGS here is not good style kamm@749: add_definitions (${LDC_DEFINES} ${LLVM_CXXFLAGS}) kamm@749: include_directories (. dmd) kamm@749: kamm@749: # this is hackish, but works kamm@749: target_link_libraries (ldc "`llvm-config --ldflags` `llvm-config --libs bitwriter linker ipo instrumentation backend`") kamm@749: kamm@749: #TODO: POSIX detection, runtime build