Skip to content

Latest commit

 

History

History
185 lines (156 loc) · 5.38 KB

CMakeLists.txt

File metadata and controls

185 lines (156 loc) · 5.38 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
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
PROJECT(Toby)
SET(TOBY_VERSION 0.1)
# 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
30
ADD_DEFINITIONS(-DLUA_ANSI=1)
Feb 4, 2007
Feb 4, 2007
31
32
33
34
35
36
37
38
39
40
INCLUDE_DIRECTORIES(.)
INCLUDE_DIRECTORIES(lua-5.1.1/src)
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
41
42
# Not building a library, so disable PIC for minor optimizations.
ADD_DEFINITIONS(-mdynamic-no-pic)
Feb 4, 2007
Feb 4, 2007
43
44
ENDIF(MACOSX)
Feb 5, 2007
Feb 5, 2007
45
46
IF(WINDOWS)
ADD_DEFINITIONS(-DPLATFORM_WINDOWS=1)
Mar 18, 2008
Mar 18, 2008
47
SET(USES_WINMAIN WIN32)
Feb 5, 2007
Feb 5, 2007
48
49
ENDIF(WINDOWS)
Feb 4, 2007
Feb 4, 2007
50
51
IF(BEOS)
ADD_DEFINITIONS(-DPLATFORM_BEOS=1)
Mar 18, 2008
Mar 18, 2008
52
53
54
# !!! 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
55
56
57
58
59
60
61
ENDIF(BEOS)
IF(UNIX)
ADD_DEFINITIONS(-DPLATFORM_UNIX=1)
ENDIF(UNIX)
IF(CMAKE_COMPILER_IS_GNUCC)
Feb 5, 2007
Feb 5, 2007
62
63
# Always build with debug symbols...you can strip it later.
ADD_DEFINITIONS(-g -pipe -Wall -Werror -fsigned-char)
Feb 4, 2007
Feb 4, 2007
64
65
ENDIF(CMAKE_COMPILER_IS_GNUCC)
Mar 17, 2008
Mar 17, 2008
66
67
68
69
70
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
71
72
SET(TOBY_HAVE_GUI FALSE)
Feb 19, 2007
Feb 19, 2007
73
OPTION(TOBY_GUI_WXWIDGETS "Build wxWidgets GUI(s)" TRUE)
Feb 10, 2007
Feb 10, 2007
74
75
76
77
78
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
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
122
Feb 4, 2007
Feb 4, 2007
123
SET(TOBY_SRCS
Feb 4, 2007
Feb 4, 2007
124
buildver.c
Feb 4, 2007
Feb 4, 2007
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
toby_app.c
lua-5.1.1/src/lapi.c
lua-5.1.1/src/ldebug.c
lua-5.1.1/src/ldo.c
lua-5.1.1/src/ldump.c
lua-5.1.1/src/lfunc.c
lua-5.1.1/src/lgc.c
lua-5.1.1/src/lmem.c
lua-5.1.1/src/lobject.c
lua-5.1.1/src/lopcodes.c
lua-5.1.1/src/lstate.c
lua-5.1.1/src/lstring.c
lua-5.1.1/src/ltable.c
lua-5.1.1/src/ltm.c
lua-5.1.1/src/lundump.c
lua-5.1.1/src/lvm.c
lua-5.1.1/src/lzio.c
lua-5.1.1/src/loadlib.c
lua-5.1.1/src/lparser.c
lua-5.1.1/src/llex.c
lua-5.1.1/src/lcode.c
lua-5.1.1/src/lauxlib.c
)
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
156
ADD_LIBRARY(tobybackend STATIC ${TOBY_SRCS} ${OPTIONAL_SRCS})
Feb 10, 2007
Feb 10, 2007
157
Feb 10, 2007
Feb 10, 2007
158
IF(TOBY_GUI_WXWIDGETS)
Mar 18, 2008
Mar 18, 2008
159
ADD_EXECUTABLE(toby ${USES_WINMAIN} toby_wxwidgets.cpp)
Feb 10, 2007
Feb 10, 2007
160
161
TARGET_LINK_LIBRARIES(toby tobybackend ${OPTIONAL_LIBS} ${wxWidgets_LIBRARIES})
ENDIF(TOBY_GUI_WXWIDGETS)
Feb 10, 2007
Feb 10, 2007
162
Feb 10, 2007
Feb 10, 2007
163
IF(TOBY_GUI_SDL)
Mar 18, 2008
Mar 18, 2008
164
ADD_EXECUTABLE(toby-sdl ${USES_WINMAIN} toby_sdl.c)
Feb 10, 2007
Feb 10, 2007
165
166
TARGET_LINK_LIBRARIES(toby-sdl tobybackend ${OPTIONAL_LIBS} ${SDL_LIBRARY})
ENDIF(TOBY_GUI_SDL)
Feb 4, 2007
Feb 4, 2007
167
Feb 12, 2007
Feb 12, 2007
168
169
MACRO(MESSAGE_BOOL_OPTION _NAME _VALUE)
IF(${_VALUE})
Feb 19, 2007
Feb 19, 2007
170
MESSAGE(STATUS " ${_NAME}: enabled")
Feb 12, 2007
Feb 12, 2007
171
ELSE(${_VALUE})
Feb 19, 2007
Feb 19, 2007
172
MESSAGE(STATUS " ${_NAME}: disabled")
Feb 12, 2007
Feb 12, 2007
173
174
175
ENDIF(${_VALUE})
ENDMACRO(MESSAGE_BOOL_OPTION)
Feb 19, 2007
Feb 19, 2007
176
MESSAGE(STATUS "Toby will build with the following options:")
Feb 12, 2007
Feb 12, 2007
177
MESSAGE_BOOL_OPTION("wxWidgets-based IDE application" TOBY_GUI_WXWIDGETS)
Feb 19, 2007
Feb 19, 2007
178
179
180
181
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
182
183
MESSAGE_BOOL_OPTION("SDL-based interpreter application" TOBY_GUI_SDL)
Feb 4, 2007
Feb 4, 2007
184
# end of CMakeLists.txt ...