Skip to content

Latest commit

 

History

History
187 lines (157 loc) · 5.42 KB

CMakeLists.txt

File metadata and controls

187 lines (157 loc) · 5.42 KB
 
Feb 8, 2007
Feb 8, 2007
1
2
3
4
5
6
# Toby -- A programming language for learning.
# Copyright (C) 2007 Ryan C. Gordon.
#
# Please refer to LICENSE.txt in the root directory of the source
# distribution for licensing details.
Mar 17, 2008
Mar 17, 2008
7
8
CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
Feb 4, 2007
Feb 4, 2007
9
10
11
PROJECT(Toby)
SET(TOBY_VERSION 0.1)
Sep 2, 2008
Sep 2, 2008
12
SET(LUA_DIR lua)
Mar 18, 2008
Mar 18, 2008
13
Feb 4, 2007
Feb 4, 2007
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# I hate that they define "WIN32" ... we're about to move to Win64...I hope!
IF(WIN32 AND NOT WINDOWS)
SET(WINDOWS TRUE)
ENDIF(WIN32 AND NOT WINDOWS)
# Bleh, let's do it for "APPLE" too.
IF(APPLE AND NOT MACOSX)
SET(MACOSX TRUE)
ENDIF(APPLE AND NOT MACOSX)
INCLUDE(CheckIncludeFile)
INCLUDE(CheckLibraryExists)
INCLUDE(CheckCSourceCompiles)
ADD_DEFINITIONS(-DAPPID=toby)
ADD_DEFINITIONS(-DAPPREV=${TOBY_VERSION})
ADD_DEFINITIONS(-D_REENTRANT)
ADD_DEFINITIONS(-D_THREAD_SAFE)
Feb 5, 2007
Feb 5, 2007
32
ADD_DEFINITIONS(-DLUA_ANSI=1)
Feb 4, 2007
Feb 4, 2007
33
34
INCLUDE_DIRECTORIES(.)
Mar 18, 2008
Mar 18, 2008
35
INCLUDE_DIRECTORIES(${LUA_DIR}/src)
Feb 4, 2007
Feb 4, 2007
36
37
38
39
40
41
42
IF(MACOSX)
ADD_DEFINITIONS(-DPLATFORM_MACOSX=1)
IF(CMAKE_OSX_ARCHITECTURES MATCHES ppc)
ADD_DEFINITIONS(-DMAC_OS_X_VERSION_MIN_REQUIRED=1020)
SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} "-mmacosx-version-min=10.2")
ENDIF(CMAKE_OSX_ARCHITECTURES MATCHES ppc)
Feb 5, 2007
Feb 5, 2007
43
44
# Not building a library, so disable PIC for minor optimizations.
ADD_DEFINITIONS(-mdynamic-no-pic)
Feb 4, 2007
Feb 4, 2007
45
46
ENDIF(MACOSX)
Feb 5, 2007
Feb 5, 2007
47
48
IF(WINDOWS)
ADD_DEFINITIONS(-DPLATFORM_WINDOWS=1)
Mar 18, 2008
Mar 18, 2008
49
SET(USES_WINMAIN WIN32)
Feb 5, 2007
Feb 5, 2007
50
51
ENDIF(WINDOWS)
Feb 4, 2007
Feb 4, 2007
52
53
IF(BEOS)
ADD_DEFINITIONS(-DPLATFORM_BEOS=1)
Mar 18, 2008
Mar 18, 2008
54
55
56
# !!! FIXME: Workaround for lua issue on some platforms...fix this better.
ADD_DEFINITIONS(-D_setjmp=setjmp)
ADD_DEFINITIONS(-D_longjmp=longjmp)
Feb 4, 2007
Feb 4, 2007
57
58
59
60
61
62
63
ENDIF(BEOS)
IF(UNIX)
ADD_DEFINITIONS(-DPLATFORM_UNIX=1)
ENDIF(UNIX)
IF(CMAKE_COMPILER_IS_GNUCC)
Feb 5, 2007
Feb 5, 2007
64
65
# Always build with debug symbols...you can strip it later.
ADD_DEFINITIONS(-g -pipe -Wall -Werror -fsigned-char)
Feb 4, 2007
Feb 4, 2007
66
67
ENDIF(CMAKE_COMPILER_IS_GNUCC)
Mar 17, 2008
Mar 17, 2008
68
69
70
71
72
IF(MSVC)
# VS.NET 8.0 got really really anal about strcpy, etc.
ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS=1)
ENDIF(MSVC)
Feb 10, 2007
Feb 10, 2007
73
74
SET(TOBY_HAVE_GUI FALSE)
Feb 19, 2007
Feb 19, 2007
75
OPTION(TOBY_GUI_WXWIDGETS "Build wxWidgets GUI(s)" TRUE)
Feb 10, 2007
Feb 10, 2007
76
77
78
79
80
IF(TOBY_GUI_WXWIDGETS)
SET(wxWidgets_USE_LIBS base core adv)
SET(wxWidgets_INCLUDE_DIRS_NO_SYSTEM 1)
FIND_PACKAGE(wxWidgets)
IF(wxWidgets_FOUND)
Feb 19, 2007
Feb 19, 2007
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
SET(TOBY_HAVE_WX_GUI FALSE)
OPTION(TOBY_WX_STANDALONE "Build wxWidgets standalone GUI" TRUE)
IF(TOBY_WX_STANDALONE)
SET(TOBY_HAVE_WX_GUI TRUE)
ADD_DEFINITIONS(-DTOBY_WX_BUILD_STANDALONE=1)
ENDIF(TOBY_WX_STANDALONE)
OPTION(TOBY_WX_IDE "Build wxWidgets IDE GUI" TRUE)
IF(TOBY_WX_IDE)
SET(TOBY_HAVE_WX_GUI TRUE)
ADD_DEFINITIONS(-DTOBY_WX_BUILD_IDE=1)
ENDIF(TOBY_WX_IDE)
IF(NOT TOBY_HAVE_WX_GUI)
MESSAGE(STATUS "No wxWidgets GUIs enabled. Disabling wx app.")
SET(TOBY_GUI_WXWIDGETS FALSE)
ELSE(NOT TOBY_HAVE_WX_GUI)
SET(TOBY_HAVE_GUI TRUE)
INCLUDE(${wxWidgets_USE_FILE})
ADD_DEFINITIONS(${wxWidgets_CXX_FLAGS})
ENDIF(NOT TOBY_HAVE_WX_GUI)
Feb 10, 2007
Feb 10, 2007
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
ELSE(wxWidgets_FOUND)
MESSAGE(STATUS "wxWidgets not found. Support is disabled.")
SET(TOBY_GUI_WXWIDGETS FALSE)
ENDIF(wxWidgets_FOUND)
ENDIF(TOBY_GUI_WXWIDGETS)
OPTION(TOBY_GUI_SDL "Build SDL standalone GUI" TRUE)
IF(TOBY_GUI_SDL)
FIND_PACKAGE(SDL)
IF(SDL_FOUND)
SET(TOBY_HAVE_GUI TRUE)
INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR})
ELSE(SDL_FOUND)
MESSAGE(STATUS "SDL not found. Support is disabled.")
SET(TOBY_GUI_SDL FALSE)
ENDIF(SDL_FOUND)
ENDIF(TOBY_GUI_SDL)
IF(NOT TOBY_HAVE_GUI)
MESSAGE(FATAL_ERROR "Can't find any GUI libraries we can use!")
ENDIF(NOT TOBY_HAVE_GUI)
Feb 10, 2007
Feb 10, 2007
124
Feb 4, 2007
Feb 4, 2007
125
SET(TOBY_SRCS
Feb 4, 2007
Feb 4, 2007
126
buildver.c
Feb 4, 2007
Feb 4, 2007
127
toby_app.c
Mar 18, 2008
Mar 18, 2008
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
${LUA_DIR}/src/lapi.c
${LUA_DIR}/src/ldebug.c
${LUA_DIR}/src/ldo.c
${LUA_DIR}/src/ldump.c
${LUA_DIR}/src/lfunc.c
${LUA_DIR}/src/lgc.c
${LUA_DIR}/src/lmem.c
${LUA_DIR}/src/lobject.c
${LUA_DIR}/src/lopcodes.c
${LUA_DIR}/src/lstate.c
${LUA_DIR}/src/lstring.c
${LUA_DIR}/src/ltable.c
${LUA_DIR}/src/ltm.c
${LUA_DIR}/src/lundump.c
${LUA_DIR}/src/lvm.c
${LUA_DIR}/src/lzio.c
${LUA_DIR}/src/loadlib.c
${LUA_DIR}/src/lparser.c
${LUA_DIR}/src/llex.c
${LUA_DIR}/src/lcode.c
${LUA_DIR}/src/lauxlib.c
Feb 4, 2007
Feb 4, 2007
149
150
151
152
153
154
155
156
157
)
IF(UNIX AND NOT MACOSX)
CHECK_LIBRARY_EXISTS("m" "sin" "" HAVE_LIBM)
IF(HAVE_LIBM)
SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} m)
ENDIF(HAVE_LIBM)
ENDIF(UNIX AND NOT MACOSX)
Feb 10, 2007
Feb 10, 2007
158
ADD_LIBRARY(tobybackend STATIC ${TOBY_SRCS} ${OPTIONAL_SRCS})
Feb 10, 2007
Feb 10, 2007
159
Feb 10, 2007
Feb 10, 2007
160
IF(TOBY_GUI_WXWIDGETS)
Mar 18, 2008
Mar 18, 2008
161
ADD_EXECUTABLE(toby ${USES_WINMAIN} toby_wxwidgets.cpp)
Feb 10, 2007
Feb 10, 2007
162
163
TARGET_LINK_LIBRARIES(toby tobybackend ${OPTIONAL_LIBS} ${wxWidgets_LIBRARIES})
ENDIF(TOBY_GUI_WXWIDGETS)
Feb 10, 2007
Feb 10, 2007
164
Feb 10, 2007
Feb 10, 2007
165
IF(TOBY_GUI_SDL)
Mar 18, 2008
Mar 18, 2008
166
ADD_EXECUTABLE(toby-sdl ${USES_WINMAIN} toby_sdl.c)
Feb 10, 2007
Feb 10, 2007
167
168
TARGET_LINK_LIBRARIES(toby-sdl tobybackend ${OPTIONAL_LIBS} ${SDL_LIBRARY})
ENDIF(TOBY_GUI_SDL)
Feb 4, 2007
Feb 4, 2007
169
Feb 12, 2007
Feb 12, 2007
170
171
MACRO(MESSAGE_BOOL_OPTION _NAME _VALUE)
IF(${_VALUE})
Feb 19, 2007
Feb 19, 2007
172
MESSAGE(STATUS " ${_NAME}: enabled")
Feb 12, 2007
Feb 12, 2007
173
ELSE(${_VALUE})
Feb 19, 2007
Feb 19, 2007
174
MESSAGE(STATUS " ${_NAME}: disabled")
Feb 12, 2007
Feb 12, 2007
175
176
177
ENDIF(${_VALUE})
ENDMACRO(MESSAGE_BOOL_OPTION)
Feb 19, 2007
Feb 19, 2007
178
MESSAGE(STATUS "Toby will build with the following options:")
Feb 12, 2007
Feb 12, 2007
179
MESSAGE_BOOL_OPTION("wxWidgets-based IDE application" TOBY_GUI_WXWIDGETS)
Feb 19, 2007
Feb 19, 2007
180
181
182
183
IF(TOBY_GUI_WXWIDGETS)
MESSAGE_BOOL_OPTION(" wxWidgets standalone support" TOBY_WX_STANDALONE)
MESSAGE_BOOL_OPTION(" wxWidgets IDE support" TOBY_WX_IDE)
ENDIF(TOBY_GUI_WXWIDGETS)
Feb 12, 2007
Feb 12, 2007
184
185
MESSAGE_BOOL_OPTION("SDL-based interpreter application" TOBY_GUI_SDL)
Feb 4, 2007
Feb 4, 2007
186
# end of CMakeLists.txt ...