64 set (noexecstack_flags "") |
64 set (noexecstack_flags "") |
65 endif (${testnoexecstack}) |
65 endif (${testnoexecstack}) |
66 |
66 |
67 IF(APPLE) |
67 IF(APPLE) |
68 FIND_PACKAGE(SDL) |
68 FIND_PACKAGE(SDL) |
|
69 if(CMAKE_OSX_ARCHITECTURES) |
|
70 set (arch_to_build "-arch i386 -arch ppc7400") |
|
71 else(CMAKE_OSX_ARCHITECTURES) |
|
72 set (arch_to build "") |
|
73 endif(CMAKE_OSX_ARCHITECTURES) |
69 if (SDL_FOUND) |
74 if (SDL_FOUND) |
70 exec_program(gcc |
75 exec_program(gcc |
71 ARGS -c -o ${EXECUTABLE_OUTPUT_PATH}/SDLMain.o ${hedgewars_SOURCE_DIR}/hedgewars/SDLMain.m -I ${SDL_INCLUDE_DIR}) |
76 ARGS ${arch_to_build} -o ${EXECUTABLE_OUTPUT_PATH}/SDLMain.o -c ${hedgewars_SOURCE_DIR}/hedgewars/SDLMain.m -I ${SDL_INCLUDE_DIR}) |
72 exec_program(${CMAKE_AR} |
77 exec_program(${CMAKE_AR} |
73 ARGS -r ${EXECUTABLE_OUTPUT_PATH}/libSDLmain.a ${EXECUTABLE_OUTPUT_PATH}/SDLMain.o) |
78 ARGS -r ${EXECUTABLE_OUTPUT_PATH}/libSDLmain.a ${EXECUTABLE_OUTPUT_PATH}/SDLMain.o) |
74 exec_program(${CMAKE_RANLIB} |
79 exec_program(${CMAKE_RANLIB} |
75 ARGS ${EXECUTABLE_OUTPUT_PATH}/libSDLmain.a) |
80 ARGS ${EXECUTABLE_OUTPUT_PATH}/libSDLmain.a) |
76 else (SDL_FOUND) |
81 else (SDL_FOUND) |
96 |
101 |
97 if (NOT pascal_compiler) |
102 if (NOT pascal_compiler) |
98 message(FATAL_ERROR "No Pascal compiler found!") |
103 message(FATAL_ERROR "No Pascal compiler found!") |
99 endif (NOT pascal_compiler) |
104 endif (NOT pascal_compiler) |
100 |
105 |
|
106 |
|
107 IF(NOT CMAKE_OSX_ARCHITECTURES) |
|
108 #here is the standard command for any system |
101 add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}" |
109 add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}" |
102 COMMAND "${pascal_compiler}" |
110 COMMAND "${pascal_compiler}" |
103 ARGS ${pascal_compiler_flags} |
111 ARGS ${pascal_compiler_flags} |
104 MAIN_DEPENDENCY ${hwengine_project} |
112 MAIN_DEPENDENCY ${hwengine_project} |
105 DEPENDS ${engine_sources} |
113 DEPENDS ${engine_sources} |
106 ) |
114 ) |
107 |
115 |
|
116 ELSE(NOT CMAKE_OSX_ARCHITECTURES) |
|
117 #these are the two dependencies for building a universal binary on Mac OS X |
|
118 |
|
119 add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}.386" |
|
120 COMMAND "ppc386" |
|
121 ARGS ${pascal_compiler_flags} -ohwengine.386 |
|
122 MAIN_DEPENDENCY ${hwengine_project} |
|
123 DEPENDS ${engine_sources} |
|
124 ) |
|
125 add_custom_target(hwengine.386 ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}.386") |
|
126 |
|
127 add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}.ppc" |
|
128 COMMAND "ppcppc" |
|
129 ARGS ${pascal_compiler_flags} -ohwengine.ppc |
|
130 MAIN_DEPENDENCY ${hwengine_project} |
|
131 DEPENDS ${engine_sources} |
|
132 ) |
|
133 add_custom_target(hwengine.ppc ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}.ppc") |
|
134 |
|
135 #this is the command that bundles the two executables into one |
|
136 add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}" |
|
137 COMMAND "lipo" |
|
138 ARGS ${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}.386 ${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}.ppc -create -output ${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX} |
|
139 DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}.386" "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}.ppc" |
|
140 ) |
|
141 ENDIF(NOT CMAKE_OSX_ARCHITECTURES) |
|
142 |
|
143 |
108 add_custom_target(hwengine ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}") |
144 add_custom_target(hwengine ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}") |
109 |
145 |
110 install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION bin) |
146 install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION bin) |
|
147 |