18 endif() |
19 endif() |
19 |
20 |
20 set(CMAKE_C_COMPILER ${clang_executable}) |
21 set(CMAKE_C_COMPILER ${clang_executable}) |
21 |
22 |
22 |
23 |
|
24 #the usual set of dependencies |
23 find_package(OPENGL REQUIRED) |
25 find_package(OPENGL REQUIRED) |
24 find_package(GLEW REQUIRED) |
26 find_package(GLEW REQUIRED) |
25 find_package(SDL REQUIRED) |
27 find_package(SDL REQUIRED) |
26 find_package(SDL_mixer REQUIRED) |
28 find_package(SDL_mixer REQUIRED) |
27 find_package(SDL_net REQUIRED) |
29 find_package(SDL_net REQUIRED) |
28 find_package(SDL_image REQUIRED) |
30 find_package(SDL_image REQUIRED) |
29 find_package(SDL_ttf REQUIRED) |
31 find_package(SDL_ttf REQUIRED) |
30 |
32 |
|
33 #compile our rtl implementation |
|
34 include_directories("${GLEW_INCLUDE_PATH}") |
|
35 include_directories(rtl) |
|
36 add_subdirectory(rtl) |
|
37 |
|
38 |
31 configure_file(${hedgewars_SOURCE_DIR}/hedgewars/config.inc.in ${CMAKE_CURRENT_BINARY_DIR}/config.inc) |
39 configure_file(${hedgewars_SOURCE_DIR}/hedgewars/config.inc.in ${CMAKE_CURRENT_BINARY_DIR}/config.inc) |
32 |
40 |
|
41 #get the list of pas files that are going to be converted and compiled |
|
42 file(GLOB engine_sources_pas "${hedgewars_SOURCE_DIR}/hedgewars/*.pas") |
|
43 #TODO: temporary until cmake can configure itself accordingly |
|
44 list(REMOVE_ITEM engine_sources_pas "${hedgewars_SOURCE_DIR}/hedgewars/uWeb.pas") |
|
45 list(REMOVE_ITEM engine_sources_pas "${hedgewars_SOURCE_DIR}/hedgewars/uVideoRec.pas") |
|
46 list(REMOVE_ITEM engine_sources_pas "${hedgewars_SOURCE_DIR}/hedgewars/uTouch.pas") |
|
47 list(REMOVE_ITEM engine_sources_pas "${hedgewars_SOURCE_DIR}/hedgewars/PNGh.pas") |
|
48 list(REMOVE_ITEM engine_sources_pas "${hedgewars_SOURCE_DIR}/hedgewars/pas2cSystem.pas") |
|
49 list(REMOVE_ITEM engine_sources_pas "${hedgewars_SOURCE_DIR}/hedgewars/pas2cRedo.pas") |
|
50 list(REMOVE_ITEM engine_sources_pas "${hedgewars_SOURCE_DIR}/hedgewars/hwLibrary.pas") |
33 |
51 |
34 add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/hwengine.c" |
52 foreach(sourcefile ${engine_sources_pas}) |
|
53 get_filename_component(sourcename ${sourcefile} NAME_WE) #drops .pas |
|
54 set(engine_sources "${CMAKE_CURRENT_BINARY_DIR}/${sourcename}.c" ${engine_sources}) |
|
55 endforeach() |
|
56 |
|
57 #invoke pas2c on our pas files |
|
58 add_custom_command(OUTPUT ${engine_sources} |
35 COMMAND "${EXECUTABLE_OUTPUT_PATH}/pas2c${CMAKE_EXECUTABLE_SUFFIX}" |
59 COMMAND "${EXECUTABLE_OUTPUT_PATH}/pas2c${CMAKE_EXECUTABLE_SUFFIX}" |
36 ARGS -n hwengine |
60 ARGS -n "hwengine" |
37 -i "${hedgewars_SOURCE_DIR}/hedgewars" |
61 -i "${hedgewars_SOURCE_DIR}/hedgewars" |
38 #-i "~/xymengxy-webport/hedgewars" |
|
39 -o "${CMAKE_CURRENT_BINARY_DIR}" |
62 -o "${CMAKE_CURRENT_BINARY_DIR}" |
40 -a "${CMAKE_CURRENT_BINARY_DIR}" |
63 -a "${CMAKE_CURRENT_BINARY_DIR}" |
41 DEPENDS pas2c |
64 DEPENDS pas2c |
42 ) |
65 ) |
43 |
66 add_custom_target(engine_c DEPENDS ${engine_sources}) |
44 add_custom_target(engine_c ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/hwengine.c") |
|
45 |
67 |
46 |
68 |
47 add_subdirectory(rtl) |
69 #compile the c files |
48 |
70 add_executable(hwengine WIN32 ${engine_sources}) |
49 include_directories("${GLEW_INCLUDE_PATH}") |
|
50 include_directories(rtl) |
|
51 |
|
52 set(engine_src uDebug.c uLandTexture.c |
|
53 LuaPas.c uFloat.c uLocale.c |
|
54 SDLh.c uGame.c uMisc.c |
|
55 adler32.c uGears.c uMobile.c |
|
56 hwengine.c uGearsHandlers.c uRandom.c |
|
57 uAI.c uGearsHandlersRope.c uRender.c |
|
58 uAIActions.c uGearsHedgehog.c uRenderUtils.c |
|
59 uAIAmmoTests.c uGearsList.c uScript.c |
|
60 uAILandMarks.c uGearsRender.c uSinTable.c |
|
61 uAIMisc.c uGearsUtils.c uSound.c |
|
62 uAmmos.c uIO.c uStats.c |
|
63 uCaptions.c uInputHandler.c uStore.c |
|
64 uChat.c uLand.c uTeams.c |
|
65 uCollisions.c uLandGenMaze.c uTextures.c |
|
66 uCommandHandlers.c uLandGraphics.c uTypes.c |
|
67 uCommands.c uLandObjects.c uUtils.c |
|
68 uConsole.c uLandOutline.c uVariables.c |
|
69 uConsts.c uLandPainted.c uVisualGears.c |
|
70 uCursor.c uLandTemplates.c uWorld.c |
|
71 ) |
|
72 |
|
73 set(engine_hdr uGame.h uFloat.h |
|
74 uLocale.h SDLh.h uMisc.h |
|
75 adler32.h uDebug.h uLandTexture.h |
|
76 LuaPas.h uGears.h uMobile.h |
|
77 uAI.h uGearsHandlersRope.h uRender.h |
|
78 uAIActions.h uGearsHedgehog.h uRenderUtils.h |
|
79 uAIAmmoTests.h uGearsList.h uScript.h |
|
80 uGearsHandlers.h uRandom.h |
|
81 uAILandMarks.h uGearsRender.h uSinTable.h |
|
82 uAIMisc.h uGearsUtils.h uSound.h |
|
83 uAmmos.h uIO.h uStats.h |
|
84 uCaptions.h uInputHandler.h uStore.h |
|
85 uChat.h uLand.h uTeams.h |
|
86 uCollisions.h uLandGenMaze.h uTextures.h |
|
87 uCommandHandlers.h uLandGraphics.h uTypes.h |
|
88 uCommands.h uLandObjects.h uUtils.h |
|
89 uConsole.h uLandOutline.h uVariables.h |
|
90 uConsts.h uLandPainted.h uVisualGears.h |
|
91 uCursor.h uLandTemplates.h uWorld.h |
|
92 ) |
|
93 |
|
94 add_executable(hwengine WIN32 ${engine_src}) |
|
95 |
71 |
96 target_link_libraries(hwengine fpcrtl |
72 target_link_libraries(hwengine fpcrtl |
97 ${LUA_LIBRARY} |
73 ${LUA_LIBRARY} |
98 ${OPENGL_LIBRARY} |
74 ${OPENGL_LIBRARY} |
99 ${SDL_LIBRARY} |
75 ${SDL_LIBRARY} |