1# Main scons file
2
3import shutil
4import sys
5
6Import('env')
7
8########################################################## [ Root environment ]
9root_env = env.Clone()
10root_env.Append(
11  CPPDEFINES = [
12    "CASE_SENSITIVE_FILESYSTEM",
13    "_THREAD_SAFE"
14  ],
15
16  CXXFLAGS = [
17    "--ansi",
18    "-Wall",
19    "-Wno-sign-compare",
20    "-Wno-narrowing",
21    "-Wno-write-strings",    # For XPM support
22    "-std=c++11"
23  ]
24)
25
26# if root_env['PLATFORM'] == 'darwin':
27#   root_env.Append(FRAMEWORKS=["OpenGL"])
28# else:
29
30root_env.ParseConfig("sdl-config --libs")
31
32#########################################################################
33
34# We used to set this just for an autogenerated header, but now it's wrapped
35# its tentacles everywhere.
36root_env.Append(
37  CPPPATH = ["$BUILD_DIR"]
38)
39
40#########################################################################
41
42librlvm_files = [
43  "src/base/notification_details.cc",
44  "src/base/notification_registrar.cc",
45  "src/base/notification_service.cc",
46  "src/base/notification_source.cc",
47  "src/effects/blind_effect.cc",
48  "src/effects/effect.cc",
49  "src/effects/effect_factory.cc",
50  "src/effects/fade_effect.cc",
51  "src/effects/scroll_on_scroll_off.cc",
52  "src/effects/wipe_effect.cc",
53  "src/encodings/codepage.cc",
54  "src/encodings/cp932.cc",
55  "src/encodings/cp936.cc",
56  "src/encodings/cp949.cc",
57  "src/encodings/han2zen.cc",
58  "src/encodings/western.cc",
59  "src/libreallive/archive.cc",
60  "src/libreallive/bytecode.cc",
61  "src/libreallive/compression.cc",
62  "src/libreallive/expression.cc",
63  "src/libreallive/filemap.cc",
64  "src/libreallive/gameexe.cc",
65  "src/libreallive/intmemref.cc",
66  "src/libreallive/scenario.cc",
67  "src/long_operations/button_object_select_long_operation.cc",
68  "src/long_operations/load_game_long_operation.cc",
69  "src/long_operations/pause_long_operation.cc",
70  "src/long_operations/select_long_operation.cc",
71  "src/long_operations/textout_long_operation.cc",
72  "src/long_operations/wait_long_operation.cc",
73  "src/long_operations/zoom_long_operation.cc",
74  "src/machine/dump_scenario.cc",
75  "src/machine/game_hacks.cc",
76  "src/machine/general_operations.cc",
77  "src/machine/long_operation.cc",
78  "src/machine/mapped_rlmodule.cc",
79  "src/machine/memory.cc",
80  "src/machine/memory_intmem.cc",
81  "src/machine/opcode_log.cc",
82  "src/machine/reallive_dll.cc",
83  "src/machine/reference.cc",
84  "src/machine/rlmachine.cc",
85  "src/machine/rlmodule.cc",
86  "src/machine/rloperation.cc",
87  "src/machine/rloperation/argc_t.cc",
88  "src/machine/rloperation/complex_t.cc",
89  "src/machine/rloperation/rlop_store.cc",
90  "src/machine/save_game_header.cc",
91  "src/machine/serialization_global.cc",
92  "src/machine/serialization_local.cc",
93  "src/machine/stack_frame.cc",
94  "src/modules/module_bgm.cc",
95  "src/modules/object_mutator_operations.cc",
96  "src/modules/module_bgr.cc",
97  "src/modules/module_dll.cc",
98  "src/modules/module_debug.cc",
99  "src/modules/module_event_loop.cc",
100  "src/modules/module_g00.cc",
101  "src/modules/module_gan.cc",
102  "src/modules/module_grp.cc",
103  "src/modules/module_jmp.cc",
104  "src/modules/module_koe.cc",
105  "src/modules/module_mem.cc",
106  "src/modules/module_mov.cc",
107  "src/modules/module_msg.cc",
108  "src/modules/module_obj.cc",
109  "src/modules/module_obj_creation.cc",
110  "src/modules/module_obj_fg_bg.cc",
111  "src/modules/module_obj_management.cc",
112  "src/modules/module_obj_getters.cc",
113  "src/modules/module_os.cc",
114  "src/modules/module_pcm.cc",
115  "src/modules/module_refresh.cc",
116  "src/modules/module_scr.cc",
117  "src/modules/module_se.cc",
118  "src/modules/module_sel.cc",
119  "src/modules/module_shk.cc",
120  "src/modules/module_shl.cc",
121  "src/modules/module_str.cc",
122  "src/modules/module_sys.cc",
123  "src/modules/module_sys_date.cc",
124  "src/modules/module_sys_frame.cc",
125  "src/modules/module_sys_name.cc",
126  "src/modules/module_sys_save.cc",
127  "src/modules/module_sys_syscom.cc",
128  "src/modules/module_sys_timer.cc",
129  "src/modules/module_sys_wait.cc",
130  "src/modules/module_sys_index_series.cc",
131  "src/modules/module_sys_timetable2.cc",
132  "src/modules/modules.cc",
133  "src/modules/object_module.cc",
134  "src/systems/base/anm_graphics_object_data.cc",
135  "src/systems/base/cgm_table.cc",
136  "src/systems/base/colour.cc",
137  "src/systems/base/colour_filter_object_data.cc",
138  "src/systems/base/digits_graphics_object.cc",
139  "src/systems/base/drift_graphics_object.cc",
140  "src/systems/base/event_listener.cc",
141  "src/systems/base/event_system.cc",
142  "src/systems/base/frame_counter.cc",
143  "src/systems/base/gan_graphics_object_data.cc",
144  "src/systems/base/graphics_object.cc",
145  "src/systems/base/graphics_object_data.cc",
146  "src/systems/base/graphics_object_of_file.cc",
147  "src/systems/base/graphics_stack_frame.cc",
148  "src/systems/base/graphics_system.cc",
149  "src/systems/base/graphics_text_object.cc",
150  "src/systems/base/hik_renderer.cc",
151  "src/systems/base/hik_script.cc",
152  "src/systems/base/koepac_voice_archive.cc",
153  "src/systems/base/little_busters_ef00dll.cc",
154  "src/systems/base/little_busters_pt00dll.cc",
155  "src/systems/base/mouse_cursor.cc",
156  "src/systems/base/nwk_voice_archive.cc",
157  "src/systems/base/object_mutator.cc",
158  "src/systems/base/object_settings.cc",
159  "src/systems/base/ovk_voice_archive.cc",
160  "src/systems/base/ovk_voice_sample.cc",
161  "src/systems/base/parent_graphics_object_data.cc",
162  "src/systems/base/platform.cc",
163  "src/systems/base/rltimer.cc",
164  "src/systems/base/rlbabel_dll.cc",
165  "src/systems/base/rect.cc",
166  "src/systems/base/selection_element.cc",
167  "src/systems/base/sound_system.cc",
168  "src/systems/base/surface.cc",
169  "src/systems/base/system.cc",
170  "src/systems/base/system_error.cc",
171  "src/systems/base/text_key_cursor.cc",
172  "src/systems/base/text_page.cc",
173  "src/systems/base/text_system.cc",
174  "src/systems/base/text_waku.cc",
175  "src/systems/base/text_waku_normal.cc",
176  "src/systems/base/text_waku_type4.cc",
177  "src/systems/base/text_window.cc",
178  "src/systems/base/text_window_button.cc",
179  "src/systems/base/tomoyo_after_dt00dll.cc",
180  "src/systems/base/tone_curve.cc",
181  "src/systems/base/voice_archive.cc",
182  "src/systems/base/voice_cache.cc",
183  "src/utilities/exception.cc",
184  "src/utilities/file.cc",
185  "src/utilities/graphics.cc",
186  "src/utilities/string_utilities.cc",
187  "src/utilities/date_util.cc",
188  "src/utilities/find_font_file.cc",
189  "src/utilities/math_util.cc",
190  "vendor/xclannad/endian.cpp",
191  "vendor/xclannad/file.cc",
192  "vendor/xclannad/koedec_ogg.cc",
193  "vendor/xclannad/nwatowav.cc",
194  "vendor/xclannad/wavfile.cc"
195]
196
197root_env.StaticLibrary('rlvm', librlvm_files)
198
199libsystemsdl_files = [
200  "src/systems/sdl/sdl_audio_locker.cc",
201  "src/systems/sdl/sdl_colour_filter.cc",
202  "src/systems/sdl/sdl_event_system.cc",
203  "src/systems/sdl/sdl_graphics_system.cc",
204  "src/systems/sdl/sdl_music.cc",
205  "src/systems/sdl/sdl_render_to_texture_surface.cc",
206  "src/systems/sdl/sdl_sound_chunk.cc",
207  "src/systems/sdl/sdl_sound_system.cc",
208  "src/systems/sdl/sdl_surface.cc",
209  "src/systems/sdl/sdl_system.cc",
210  "src/systems/sdl/sdl_text_system.cc",
211  "src/systems/sdl/sdl_text_window.cc",
212  "src/systems/sdl/sdl_utils.cc",
213  "src/systems/sdl/shaders.cc",
214  "src/systems/sdl/texture.cc",
215
216  # Parts of zresample
217  "src/systems/sdl/resample.cc",
218  "src/systems/sdl/audiofile.cc",
219  "src/systems/sdl/dither.cc",
220  "src/systems/sdl/zresample.cc",
221
222  # Parts of pygame.
223  "vendor/pygame/alphablit.cc"
224]
225
226root_env.StaticLibrary('system_sdl', libsystemsdl_files)
227
228guichan_platform = [
229  "src/platforms/gcn/gcn_button.cc",
230  "src/platforms/gcn/gcn_graphics.cc",
231  "src/platforms/gcn/gcn_info_window.cc",
232  "src/platforms/gcn/gcn_menu.cc",
233  "src/platforms/gcn/gcn_platform.cc",
234  "src/platforms/gcn/gcn_save_load_window.cc",
235  "src/platforms/gcn/gcn_scroll_area.cc",
236  "src/platforms/gcn/gcn_true_type_font.cc",
237  "src/platforms/gcn/gcn_utils.cc",
238  "src/platforms/gcn/gcn_window.cc",
239]
240
241root_env.StaticLibrary('guichan_platform', guichan_platform)
242