annotate CMakeLists.txt @ 1453:f35a9a77d256

More tweaks.
author Robert Clipsham <robert@octarineparrot.com>
date Mon, 01 Jun 2009 18:58:21 +0100
parents 24b33fdc7c0c
children 26d061e61b02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
1 project(ldc)
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
2
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
3 cmake_minimum_required(VERSION 2.6)
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
4 # actually, 2.4 will work, with a warning
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
5 # if we required 2.4, 2.6+ would switch to a compatibility mode and cause problems on 2.6+ specifics
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
6
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
7 include(FindPerl)
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
8 if(NOT PERL)
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
9 message(FATAL_ERROR "perl not found")
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
10 endif(NOT PERL)
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
11
1103
b30fe7e1dbb9 - Updated to DMD frontend 1.041.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1074
diff changeset
12 include(FindPkgConfig)
b30fe7e1dbb9 - Updated to DMD frontend 1.041.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1074
diff changeset
13 if(NOT PKG_CONFIG_FOUND)
b30fe7e1dbb9 - Updated to DMD frontend 1.041.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1074
diff changeset
14 message(FATAL_ERROR "pkg-config not found")
b30fe7e1dbb9 - Updated to DMD frontend 1.041.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1074
diff changeset
15 else(NOT PKG_CONFIG_FOUND)
b30fe7e1dbb9 - Updated to DMD frontend 1.041.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1074
diff changeset
16 pkg_search_module(LIBCONFIGPP libconfig++)
b30fe7e1dbb9 - Updated to DMD frontend 1.041.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1074
diff changeset
17 if(NOT LIBCONFIGPP_FOUND)
1139
d82cc6e5bb65 Fixed error when pkg-config couldn't find libconfig, allows user to set flags manually.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1129
diff changeset
18 set(LIBCONFIG_CXXFLAGS "" CACHE STRING "libconfig++ compiler flags")
d82cc6e5bb65 Fixed error when pkg-config couldn't find libconfig, allows user to set flags manually.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1129
diff changeset
19 set(LIBCONFIG_LDFLAGS "" CACHE STRING "libconfig++ linker flags")
d82cc6e5bb65 Fixed error when pkg-config couldn't find libconfig, allows user to set flags manually.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1129
diff changeset
20 else(NOT LIBCONFIGPP_FOUND)
d82cc6e5bb65 Fixed error when pkg-config couldn't find libconfig, allows user to set flags manually.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1129
diff changeset
21 set(LIBCONFIG_CXXFLAGS ${LIBCONFIGPP_CFLAGS} CACHE STRING "libconfig++ compiler flags")
d82cc6e5bb65 Fixed error when pkg-config couldn't find libconfig, allows user to set flags manually.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1129
diff changeset
22 set(LIBCONFIG_LDFLAGS ${LIBCONFIGPP_LDFLAGS} CACHE STRING "libconfig++ linker flags")
1103
b30fe7e1dbb9 - Updated to DMD frontend 1.041.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1074
diff changeset
23 endif(NOT LIBCONFIGPP_FOUND)
b30fe7e1dbb9 - Updated to DMD frontend 1.041.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1074
diff changeset
24 endif(NOT PKG_CONFIG_FOUND)
b30fe7e1dbb9 - Updated to DMD frontend 1.041.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1074
diff changeset
25
b30fe7e1dbb9 - Updated to DMD frontend 1.041.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1074
diff changeset
26
785
ac39e5449ca5 Apply Elrood's CMake changes from #124. Thanks a lot!
Christian Kamm <kamm incasoftware de>
parents: 758
diff changeset
27 find_program(LLVM_CONFIG llvm-config ${LLVM_INSTDIR}/bin DOC "path to llvm-config tool")
ac39e5449ca5 Apply Elrood's CMake changes from #124. Thanks a lot!
Christian Kamm <kamm incasoftware de>
parents: 758
diff changeset
28 # get llvm's install dir. a little hackish, we could do something like llvm-config --prefix, but this does as well
ac39e5449ca5 Apply Elrood's CMake changes from #124. Thanks a lot!
Christian Kamm <kamm incasoftware de>
parents: 758
diff changeset
29 string(REPLACE "/bin/llvm-config" "" LLVM_DIR ${LLVM_CONFIG})
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
30
785
ac39e5449ca5 Apply Elrood's CMake changes from #124. Thanks a lot!
Christian Kamm <kamm incasoftware de>
parents: 758
diff changeset
31 set(LLVM_INSTDIR ${LLVM_DIR} CACHE PATH "LLVM installation directory" FORCE)
ac39e5449ca5 Apply Elrood's CMake changes from #124. Thanks a lot!
Christian Kamm <kamm incasoftware de>
parents: 758
diff changeset
32 if(NOT LLVM_INSTDIR)
ac39e5449ca5 Apply Elrood's CMake changes from #124. Thanks a lot!
Christian Kamm <kamm incasoftware de>
parents: 758
diff changeset
33 message(FATAL_ERROR "llvm not found")
ac39e5449ca5 Apply Elrood's CMake changes from #124. Thanks a lot!
Christian Kamm <kamm incasoftware de>
parents: 758
diff changeset
34 endif(NOT LLVM_INSTDIR)
749
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
35
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
36 execute_process(
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
37 COMMAND ${PERL_EXECUTABLE} ${LLVM_CONFIG} --host-target
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
38 OUTPUT_VARIABLE HOST_TARGET
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
39 OUTPUT_STRIP_TRAILING_WHITESPACE
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
40 )
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
41 execute_process(
1021
d1ec9ff0e9ba Implemented basic -m32 and -m64 options.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 982
diff changeset
42 COMMAND /bin/sh ${PROJECT_SOURCE_DIR}/find-alt-triple.sh ${HOST_TARGET}
d1ec9ff0e9ba Implemented basic -m32 and -m64 options.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 982
diff changeset
43 OUTPUT_VARIABLE HOST_ALT_TARGET
d1ec9ff0e9ba Implemented basic -m32 and -m64 options.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 982
diff changeset
44 OUTPUT_STRIP_TRAILING_WHITESPACE
d1ec9ff0e9ba Implemented basic -m32 and -m64 options.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 982
diff changeset
45 )
d1ec9ff0e9ba Implemented basic -m32 and -m64 options.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 982
diff changeset
46 execute_process(
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
47 COMMAND ${PERL_EXECUTABLE} ${LLVM_CONFIG} --cxxflags
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
48 OUTPUT_VARIABLE LLVM_CXXFLAGS
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
49 OUTPUT_STRIP_TRAILING_WHITESPACE
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
50 )
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
51 execute_process(
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
52 COMMAND ${PERL_EXECUTABLE} ${LLVM_CONFIG} --ldflags
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
53 OUTPUT_VARIABLE LLVM_LDFLAGS
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
54 OUTPUT_STRIP_TRAILING_WHITESPACE
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
55 )
1105
cdb7e1167803 - Fixed building tango-user-ldc on x86-32.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1103
diff changeset
56
cdb7e1167803 - Fixed building tango-user-ldc on x86-32.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1103
diff changeset
57 set(EXTRA_LLVM_MODULES "" CACHE STRING "extra llvm components to link in (see llvm-config --components)")
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
58 execute_process(
1105
cdb7e1167803 - Fixed building tango-user-ldc on x86-32.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1103
diff changeset
59 COMMAND ${PERL_EXECUTABLE} ${LLVM_CONFIG} --libfiles bitwriter linker ipo instrumentation backend ${EXTRA_LLVM_MODULES}
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
60 OUTPUT_VARIABLE LLVM_LIBS
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
61 OUTPUT_STRIP_TRAILING_WHITESPACE
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
62 )
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
63
758
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
64 set(D_VERSION 1 CACHE STRING "D language version")
828
03b0c817a1a3 added install target and possibility to pre- and suffix ldc's executable name to cmake scripts
elrood
parents: 821
diff changeset
65 set(PROGRAM_PREFIX CACHE STRING "prepended to ldc binary name")
03b0c817a1a3 added install target and possibility to pre- and suffix ldc's executable name to cmake scripts
elrood
parents: 821
diff changeset
66 set(PROGRAM_SUFFIX CACHE STRING "appended to ldc binary name")
785
ac39e5449ca5 Apply Elrood's CMake changes from #124. Thanks a lot!
Christian Kamm <kamm incasoftware de>
parents: 758
diff changeset
67 option(USE_BOEHM_GC "use the Boehm garbage collector internally")
821
8f0b24bc55f0 Added CMake option to disable generation of ClassInfo.offTi arrays, defaults to OFF.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 785
diff changeset
68 option(GENERATE_OFFTI "generate complete ClassInfo.offTi arrays")
785
ac39e5449ca5 Apply Elrood's CMake changes from #124. Thanks a lot!
Christian Kamm <kamm incasoftware de>
parents: 758
diff changeset
69
758
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
70 if(D_VERSION EQUAL 1)
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
71 set(DMDFE_PATH dmd)
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
72 set(LDC_EXE ldc)
1453
f35a9a77d256 More tweaks.
Robert Clipsham <robert@octarineparrot.com>
parents: 1396
diff changeset
73 set(LDMD_EXE ldmd)
758
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
74 add_definitions(-DDMDV1)
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
75 elseif(D_VERSION EQUAL 2)
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
76 set(DMDFE_PATH dmd2)
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
77 set(LDC_EXE ldc2)
1453
f35a9a77d256 More tweaks.
Robert Clipsham <robert@octarineparrot.com>
parents: 1396
diff changeset
78 set(LDMD_EXE ldmd2)
758
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
79 add_definitions(-DDMDV2)
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
80 else(D_VERSION EQUAL 1)
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
81 message(FATAL_ERROR "unsupported D version")
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
82 endif(D_VERSION EQUAL 1)
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
83
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
84 file(MAKE_DIRECTORY
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
85 ${PROJECT_BINARY_DIR}/bin
758
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
86 ${PROJECT_BINARY_DIR}/${DMDFE_PATH}
1065
dc576c7e4b1e Fix to make sure to create gen/ in build dir and unbreak build with older perl
Frits van Bommel <fvbommel wxs.nl>
parents: 1064
diff changeset
87 ${PROJECT_BINARY_DIR}/gen
750
d05fc504a3a0 Improve CMake build file.
Christian Kamm <kamm incasoftware de>
parents: 749
diff changeset
88 )
d05fc504a3a0 Improve CMake build file.
Christian Kamm <kamm incasoftware de>
parents: 749
diff changeset
89
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
90 # idgen and impcnvgen
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
91 set_source_files_properties(
758
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
92 ${DMDFE_PATH}/idgen.c
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
93 ${DMDFE_PATH}/impcnvgen.c
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
94 PROPERTIES LANGUAGE CXX
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
95 )
758
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
96 add_executable(idgen ${DMDFE_PATH}/idgen.c)
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
97 add_executable(impcnvgen ${DMDFE_PATH}/impcnvgen.c)
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
98 # cmake 2.4
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
99 set_target_properties(
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
100 idgen impcnvgen PROPERTIES
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
101 LINKER_LANGUAGE CXX
785
ac39e5449ca5 Apply Elrood's CMake changes from #124. Thanks a lot!
Christian Kamm <kamm incasoftware de>
parents: 758
diff changeset
102 RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/${DMDFE_PATH}
1051
dc608dc33081 Make IrFuncTy a member of TypeFunction. Reset between modules compiled in the
Christian Kamm <kamm incasoftware de>
parents: 1032
diff changeset
103 COMPILE_FLAGS ${LLVM_CXXFLAGS}
750
d05fc504a3a0 Improve CMake build file.
Christian Kamm <kamm incasoftware de>
parents: 749
diff changeset
104 )
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
105 get_target_property(IDGEN_LOC idgen LOCATION)
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
106 get_target_property(IMPCNVGEN_LOC impcnvgen LOCATION)
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
107 #
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
108 add_custom_command(
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
109 OUTPUT
758
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
110 ${PROJECT_BINARY_DIR}/${DMDFE_PATH}/id.c
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
111 ${PROJECT_BINARY_DIR}/${DMDFE_PATH}/id.h
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
112 # 2.4
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
113 COMMAND ${IDGEN_LOC}
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
114 #COMMAND idgen
758
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
115 WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/${DMDFE_PATH}
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
116 DEPENDS idgen
750
d05fc504a3a0 Improve CMake build file.
Christian Kamm <kamm incasoftware de>
parents: 749
diff changeset
117 )
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
118 add_custom_command(
758
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
119 OUTPUT ${PROJECT_BINARY_DIR}/${DMDFE_PATH}/impcnvtab.c
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
120 # 2.4
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
121 COMMAND ${IMPCNVGEN_LOC}
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
122 #COMMAND impcnvgen
758
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
123 WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/${DMDFE_PATH}
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
124 DEPENDS impcnvgen
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
125 )
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
126 set(LDC_GENERATED
758
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
127 ${PROJECT_BINARY_DIR}/${DMDFE_PATH}/id.c
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
128 ${PROJECT_BINARY_DIR}/${DMDFE_PATH}/id.h
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
129 ${PROJECT_BINARY_DIR}/${DMDFE_PATH}/impcnvtab.c
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
130 )
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
131 # idgen and impcnvgen done
749
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
132
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
133 set(DEFAULT_TARGET ${HOST_TARGET} CACHE STRING "default target")
1021
d1ec9ff0e9ba Implemented basic -m32 and -m64 options.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 982
diff changeset
134 set(DEFAULT_ALT_TARGET ${HOST_ALT_TARGET} CACHE STRING "default alt target")
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
135
1194
1853dcd9b944 Moved some DMDFE files into a seperate dmd/root subdir to closer match the DMD file structure since 1.041.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1139
diff changeset
136 include_directories(. ${DMDFE_PATH} ${DMDFE_PATH}/root ${PROJECT_BINARY_DIR}/${DMDFE_PATH} ${PROJECT_BINARY_DIR} ${LLVM_INSTDIR}/include)
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
137
758
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
138 file(GLOB FE_SRC ${DMDFE_PATH}/*.c)
1194
1853dcd9b944 Moved some DMDFE files into a seperate dmd/root subdir to closer match the DMD file structure since 1.041.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1139
diff changeset
139 file(GLOB FE_SRC_ROOT ${DMDFE_PATH}/root/*.c)
1275
bedf0bfb8fdb Implement first D-specific optimization pass: -simplify-drtcalls.
Frits van Bommel <fvbommel wxs.nl>
parents: 1256
diff changeset
140 file(GLOB_RECURSE GEN_SRC gen/*.cpp)
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
141 file(GLOB IR_SRC ir/*.cpp)
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
142 # exclude idgen and impcnvgen and generated sources, just in case
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
143 list(REMOVE_ITEM FE_SRC
758
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
144 ${PROJECT_SOURCE_DIR}/${DMDFE_PATH}/idgen.c
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
145 ${PROJECT_SOURCE_DIR}/${DMDFE_PATH}/impcnvgen.c
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
146 ${PROJECT_SOURCE_DIR}/${DMDFE_PATH}/id.c
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
147 ${PROJECT_SOURCE_DIR}/${DMDFE_PATH}/impcnvtab.c
750
d05fc504a3a0 Improve CMake build file.
Christian Kamm <kamm incasoftware de>
parents: 749
diff changeset
148 )
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
149 set(LDC_SOURCE_FILES
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
150 ${LDC_GENERATED}
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
151 ${FE_SRC}
1194
1853dcd9b944 Moved some DMDFE files into a seperate dmd/root subdir to closer match the DMD file structure since 1.041.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1139
diff changeset
152 ${FE_SRC_ROOT}
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
153 ${GEN_SRC}
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
154 ${IR_SRC}
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
155 )
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
156 set_source_files_properties(
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
157 ${LDC_SOURCE_FILES} PROPERTIES
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
158 LANGUAGE CXX
750
d05fc504a3a0 Improve CMake build file.
Christian Kamm <kamm incasoftware de>
parents: 749
diff changeset
159 )
749
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
160
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
161 add_definitions(
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
162 -DIN_LLVM
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
163 -D_DH
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
164 -DOPAQUE_VTBLS
750
d05fc504a3a0 Improve CMake build file.
Christian Kamm <kamm incasoftware de>
parents: 749
diff changeset
165 )
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
166
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
167 if(UNIX)
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
168 add_definitions(-DPOSIX)
829
0a31c60a6bc1 .. and fixed the install target (hopefully)
elrood
parents: 828
diff changeset
169 set(CONF_INST_DIR bin)
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
170 endif(UNIX)
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
171
785
ac39e5449ca5 Apply Elrood's CMake changes from #124. Thanks a lot!
Christian Kamm <kamm incasoftware de>
parents: 758
diff changeset
172 if(USE_BOEHM_GC)
883
b52d5de7783f GC defines and linkage changes.
Christian Kamm <kamm incasoftware de>
parents: 853
diff changeset
173 add_definitions(-DREDIRECT_MALLOC=GC_malloc -DIGNORE_FREE)
785
ac39e5449ca5 Apply Elrood's CMake changes from #124. Thanks a lot!
Christian Kamm <kamm incasoftware de>
parents: 758
diff changeset
174 endif(USE_BOEHM_GC)
ac39e5449ca5 Apply Elrood's CMake changes from #124. Thanks a lot!
Christian Kamm <kamm incasoftware de>
parents: 758
diff changeset
175
821
8f0b24bc55f0 Added CMake option to disable generation of ClassInfo.offTi arrays, defaults to OFF.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 785
diff changeset
176 if(GENERATE_OFFTI)
8f0b24bc55f0 Added CMake option to disable generation of ClassInfo.offTi arrays, defaults to OFF.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 785
diff changeset
177 add_definitions(-DGENERATE_OFFTI)
8f0b24bc55f0 Added CMake option to disable generation of ClassInfo.offTi arrays, defaults to OFF.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 785
diff changeset
178 endif(GENERATE_OFFTI)
8f0b24bc55f0 Added CMake option to disable generation of ClassInfo.offTi arrays, defaults to OFF.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 785
diff changeset
179
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
180 if(CMAKE_MINOR_VERSION LESS 6)
785
ac39e5449ca5 Apply Elrood's CMake changes from #124. Thanks a lot!
Christian Kamm <kamm incasoftware de>
parents: 758
diff changeset
181 set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin CACHE PATH "output dir for built executables")
ac39e5449ca5 Apply Elrood's CMake changes from #124. Thanks a lot!
Christian Kamm <kamm incasoftware de>
parents: 758
diff changeset
182 set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib CACHE PATH "output dir for built libraries")
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
183 add_definitions(-DDEFAULT_TARGET_TRIPLE=\\"${DEFAULT_TARGET}\\")
1021
d1ec9ff0e9ba Implemented basic -m32 and -m64 options.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 982
diff changeset
184 add_definitions(-DDEFAULT_ALT_TARGET_TRIPLE=\\"${DEFAULT_ALT_TARGET}\\")
1103
b30fe7e1dbb9 - Updated to DMD frontend 1.041.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1074
diff changeset
185 add_definitions(-DLDC_INSTALL_PREFIX=\\"${CMAKE_INSTALL_PREFIX}\\")
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
186 else(CMAKE_MINOR_VERSION LESS 6)
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
187 add_definitions(-DDEFAULT_TARGET_TRIPLE="${DEFAULT_TARGET}")
1021
d1ec9ff0e9ba Implemented basic -m32 and -m64 options.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 982
diff changeset
188 add_definitions(-DDEFAULT_ALT_TARGET_TRIPLE="${DEFAULT_ALT_TARGET}")
1103
b30fe7e1dbb9 - Updated to DMD frontend 1.041.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1074
diff changeset
189 add_definitions(-DLDC_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}")
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
190 endif(CMAKE_MINOR_VERSION LESS 6)
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
191
758
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
192 add_executable(${LDC_EXE} ${LDC_SOURCE_FILES})
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
193
853
82ad6c0c601c Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents: 829
diff changeset
194 # generate revision info
1064
f0b6549055ab Make LDC work with LLVM trunk (s/LinkOnceLinkage/LinkOnceOdrLinkage/)
Frits van Bommel <fvbommel wxs.nl>
parents: 1051
diff changeset
195 configure_file(
f0b6549055ab Make LDC work with LLVM trunk (s/LinkOnceLinkage/LinkOnceOdrLinkage/)
Frits van Bommel <fvbommel wxs.nl>
parents: 1051
diff changeset
196 ${PROJECT_SOURCE_DIR}/revisions.pl.in
f0b6549055ab Make LDC work with LLVM trunk (s/LinkOnceLinkage/LinkOnceOdrLinkage/)
Frits van Bommel <fvbommel wxs.nl>
parents: 1051
diff changeset
197 ${PROJECT_BINARY_DIR}/revisions.pl
f0b6549055ab Make LDC work with LLVM trunk (s/LinkOnceLinkage/LinkOnceOdrLinkage/)
Frits van Bommel <fvbommel wxs.nl>
parents: 1051
diff changeset
198 @ONLY
f0b6549055ab Make LDC work with LLVM trunk (s/LinkOnceLinkage/LinkOnceOdrLinkage/)
Frits van Bommel <fvbommel wxs.nl>
parents: 1051
diff changeset
199 )
1074
d9820e08bb84 Make sure revisions.pl always runs so revisions.h doesn't get out of date.
Frits van Bommel <fvbommel wxs.nl>
parents: 1071
diff changeset
200 add_custom_target(
d9820e08bb84 Make sure revisions.pl always runs so revisions.h doesn't get out of date.
Frits van Bommel <fvbommel wxs.nl>
parents: 1071
diff changeset
201 gen_revs_h
853
82ad6c0c601c Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents: 829
diff changeset
202 COMMAND ${PERL_EXECUTABLE} ${PROJECT_BINARY_DIR}/revisions.pl
1074
d9820e08bb84 Make sure revisions.pl always runs so revisions.h doesn't get out of date.
Frits van Bommel <fvbommel wxs.nl>
parents: 1071
diff changeset
203 DEPENDS ${PROJECT_BINARY_DIR}/revisions.pl
1113
123812e02bc8 Split out LLVM_REV into separate header, to reduce rebuilding when only the LDC
Frits van Bommel <fvbommel wxs.nl>
parents: 1107
diff changeset
204 COMMENT "Generating revisions.h and llvm-version.h"
1064
f0b6549055ab Make LDC work with LLVM trunk (s/LinkOnceLinkage/LinkOnceOdrLinkage/)
Frits van Bommel <fvbommel wxs.nl>
parents: 1051
diff changeset
205 WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/gen
853
82ad6c0c601c Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents: 829
diff changeset
206 )
82ad6c0c601c Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents: 829
diff changeset
207 add_dependencies(${LDC_EXE} gen_revs_h)
82ad6c0c601c Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents: 829
diff changeset
208 #
82ad6c0c601c Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents: 829
diff changeset
209
828
03b0c817a1a3 added install target and possibility to pre- and suffix ldc's executable name to cmake scripts
elrood
parents: 821
diff changeset
210 set(LDC_EXE_NAME ${PROGRAM_PREFIX}${LDC_EXE}${PROGRAM_SUFFIX})
03b0c817a1a3 added install target and possibility to pre- and suffix ldc's executable name to cmake scripts
elrood
parents: 821
diff changeset
211
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
212 set_target_properties(
758
f04dde6e882c Added initial D2 support, D2 frontend and changes to codegen to make things compile.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 753
diff changeset
213 ${LDC_EXE} PROPERTIES
828
03b0c817a1a3 added install target and possibility to pre- and suffix ldc's executable name to cmake scripts
elrood
parents: 821
diff changeset
214 OUTPUT_NAME ${LDC_EXE_NAME}
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
215 RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin
1103
b30fe7e1dbb9 - Updated to DMD frontend 1.041.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 1074
diff changeset
216 COMPILE_FLAGS "${LLVM_CXXFLAGS} ${LIBCONFIG_CXXFLAGS} -Wno-deprecated -Wno-write-strings"
750
d05fc504a3a0 Improve CMake build file.
Christian Kamm <kamm incasoftware de>
parents: 749
diff changeset
217 )
749
db2dd9861600 Add basic CMake build file.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
218
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
219 # LDFLAGS should actually be in target property LINK_FLAGS, but this works, and gets around linking problems
1107
015b1634b33f Unquote ${LIBCONFIG_LDFLAGS} in target_link_libraries().
Frits van Bommel <fvbommel wxs.nl>
parents: 1105
diff changeset
220 target_link_libraries(${LDC_EXE} "${LLVM_LDFLAGS} ${LLVM_LIBS}" ${LIBCONFIG_LDFLAGS})
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
221 if(WIN32)
1256
6af2359b433a Change needed for mingw
Kelly Wilson <wilsonk cpsc.ucalgary.ca>
parents: 1194
diff changeset
222 target_link_libraries(${LDC_EXE} config++ imagehlp psapi)
828
03b0c817a1a3 added install target and possibility to pre- and suffix ldc's executable name to cmake scripts
elrood
parents: 821
diff changeset
223 set(CONF_INST_DIR bin)
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
224 endif(WIN32)
750
d05fc504a3a0 Improve CMake build file.
Christian Kamm <kamm incasoftware de>
parents: 749
diff changeset
225
785
ac39e5449ca5 Apply Elrood's CMake changes from #124. Thanks a lot!
Christian Kamm <kamm incasoftware de>
parents: 758
diff changeset
226 if(USE_BOEHM_GC)
883
b52d5de7783f GC defines and linkage changes.
Christian Kamm <kamm incasoftware de>
parents: 853
diff changeset
227 target_link_libraries(${LDC_EXE} ${PROJECT_SOURCE_DIR}/libgc.a)
785
ac39e5449ca5 Apply Elrood's CMake changes from #124. Thanks a lot!
Christian Kamm <kamm incasoftware de>
parents: 758
diff changeset
228 endif(USE_BOEHM_GC)
750
d05fc504a3a0 Improve CMake build file.
Christian Kamm <kamm incasoftware de>
parents: 749
diff changeset
229
785
ac39e5449ca5 Apply Elrood's CMake changes from #124. Thanks a lot!
Christian Kamm <kamm incasoftware de>
parents: 758
diff changeset
230 get_target_property(LDC_LOC ${LDC_EXE} LOCATION)
ac39e5449ca5 Apply Elrood's CMake changes from #124. Thanks a lot!
Christian Kamm <kamm incasoftware de>
parents: 758
diff changeset
231
753
405e40f20ef9 Switch to Elrood's rewritten CMakeLists.txt.
Christian Kamm <kamm incasoftware de>
parents: 750
diff changeset
232 # TODO: testrun
785
ac39e5449ca5 Apply Elrood's CMake changes from #124. Thanks a lot!
Christian Kamm <kamm incasoftware de>
parents: 758
diff changeset
233
828
03b0c817a1a3 added install target and possibility to pre- and suffix ldc's executable name to cmake scripts
elrood
parents: 821
diff changeset
234 install(TARGETS ${LDC_EXE} DESTINATION bin)
1453
f35a9a77d256 More tweaks.
Robert Clipsham <robert@octarineparrot.com>
parents: 1396
diff changeset
235 install(FILES ${PROJECT_SOURCE_DIR}/bin/${LDMD_EXE} DESTINATION bin)
829
0a31c60a6bc1 .. and fixed the install target (hopefully)
elrood
parents: 828
diff changeset
236 install(FILES ${PROJECT_BINARY_DIR}/bin/${LDC_EXE}.conf DESTINATION ${CONF_INST_DIR})
1129
8403fec8c34c Add dmd-style configuration file for rebuild usage. See #236 and thanks to ccuter for the patch!
Christian Kamm <kamm incasoftware de>
parents: 1113
diff changeset
237 install(FILES ${PROJECT_BINARY_DIR}/bin/${LDC_EXE}.rebuild.conf DESTINATION ${CONF_INST_DIR})
829
0a31c60a6bc1 .. and fixed the install target (hopefully)
elrood
parents: 828
diff changeset
238 install(DIRECTORY ${PROJECT_BINARY_DIR}/lib DESTINATION . USE_SOURCE_PERMISSIONS)
828
03b0c817a1a3 added install target and possibility to pre- and suffix ldc's executable name to cmake scripts
elrood
parents: 821
diff changeset
239
829
0a31c60a6bc1 .. and fixed the install target (hopefully)
elrood
parents: 828
diff changeset
240 add_subdirectory(runtime EXCLUDE_FROM_ALL)