hedgewars/CMakeLists.txt
changeset 2609 b67624c7d61e
parent 2606 ed687a8d081f
child 2629 be70fd3458c0
equal deleted inserted replaced
2608:cebfea02f8b5 2609:b67624c7d61e
   115 
   115 
   116 	add_library (SDLmain STATIC SDLMain.m)
   116 	add_library (SDLmain STATIC SDLMain.m)
   117 	set(engine_sources SDLmain ${engine_sources})
   117 	set(engine_sources SDLmain ${engine_sources})
   118 ENDIF(APPLE)
   118 ENDIF(APPLE)
   119 
   119 
   120 IF(NOT APPLE OR NOT universal_build)
   120 IF(build_type MATCHES "standard")
   121 #here is the standard command for any system
   121 #here is the standard command for any system
   122 add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}"
   122 	add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}"
   123 		COMMAND "${pascal_compiler}"
   123 		COMMAND "${pascal_compiler}"
   124 		ARGS ${pascal_compiler_flags}
   124 		ARGS ${pascal_compiler_flags}
   125 		MAIN_DEPENDENCY ${hwengine_project}
   125 		MAIN_DEPENDENCY ${hwengine_project}
   126 		DEPENDS ${engine_sources}
   126 		DEPENDS ${engine_sources}
   127 		)
   127 		)
   128 ELSE()
   128 ELSE()
   129 #these are the two dependencies for building a universal binary on Mac OS X
   129 #these are the dependencies for building a universal binary on Mac OS X
   130 add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine.386"
   130 	find_program(pascal_x86 NAMES ppc386)
   131 		COMMAND "ppc386" 
   131 	find_program(pascal_ppc NAMES ppcppc)
   132 		ARGS ${pascal_compiler_flags} -ohwengine.386 -CfSSE2
   132 
       
   133 	add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine.386"
       
   134 		COMMAND "${pascal_x86}" 
       
   135 		ARGS ${pascal_compiler_flags} -ohwengine.386
   133 		MAIN_DEPENDENCY ${hwengine_project}
   136 		MAIN_DEPENDENCY ${hwengine_project}
   134 		DEPENDS ${engine_sources}
   137 		DEPENDS ${engine_sources}
   135 		)
   138 		)
   136 add_custom_target(hwengine.386 ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine.386")
   139 	add_custom_target(hwengine.386 ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine.386")
   137 
   140 
   138 add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine.ppc"
   141 	add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine.ppc"
   139 		COMMAND "ppcppc"
   142 		COMMAND "${pascal_ppc}"
   140 		ARGS ${pascal_compiler_flags} -ohwengine.ppc
   143 		ARGS ${pascal_compiler_flags} -ohwengine.ppc
   141 		MAIN_DEPENDENCY ${hwengine_project}
   144 		MAIN_DEPENDENCY ${hwengine_project}
   142 		DEPENDS ${engine_sources}
   145 		DEPENDS ${engine_sources}
   143 		)
   146 		)
   144 add_custom_target(hwengine.ppc ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine.ppc")
   147 	add_custom_target(hwengine.ppc ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine.ppc")
   145 
   148 
   146 #this is the command that bundles the two executables into one
   149 	IF(build_type MATCHES "universal64")
   147 add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine"
   150 		find_program(pascal_x64 NAMES ppcx64)
   148 		COMMAND "lipo"
   151 		
   149 		ARGS ${EXECUTABLE_OUTPUT_PATH}/hwengine.386 ${EXECUTABLE_OUTPUT_PATH}/hwengine.ppc -create -output ${EXECUTABLE_OUTPUT_PATH}/hwengine
   152 		add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine.x64"
   150 		DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine.386" "${EXECUTABLE_OUTPUT_PATH}/hwengine.ppc"
   153 			COMMAND "${pascal_x64}" 
   151 		)
   154 			ARGS ${pascal_compiler_flags} -ohwengine.x64
       
   155 			MAIN_DEPENDENCY ${hwengine_project}
       
   156 			DEPENDS ${engine_sources}
       
   157 			)
       
   158 		add_custom_target(hwengine.x64 ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine.x64")
       
   159 
       
   160 		add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine"
       
   161 			COMMAND "lipo"
       
   162 			ARGS "${EXECUTABLE_OUTPUT_PATH}/hwengine.386" "${EXECUTABLE_OUTPUT_PATH}/hwengine.ppc" "${EXECUTABLE_OUTPUT_PATH}/hwengine.x64" -create -output ${EXECUTABLE_OUTPUT_PATH}/hwengine
       
   163 			DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine.386" "${EXECUTABLE_OUTPUT_PATH}/hwengine.ppc" "${EXECUTABLE_OUTPUT_PATH}/hwengine.x64"
       
   164 			)
       
   165 	else()
       
   166 		add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine"
       
   167 			COMMAND "lipo"
       
   168 			ARGS "${EXECUTABLE_OUTPUT_PATH}/hwengine.386" "${EXECUTABLE_OUTPUT_PATH}/hwengine.ppc" -create -output ${EXECUTABLE_OUTPUT_PATH}/hwengine
       
   169 			DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine.386" "${EXECUTABLE_OUTPUT_PATH}/hwengine.ppc"
       
   170 			)
       
   171 	endif()
   152 ENDIF()
   172 ENDIF()
   153 
       
   154 
   173 
   155 add_custom_target(hwengine ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}")
   174 add_custom_target(hwengine ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}")
   156 
   175 
   157 install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ${target_dir})
   176 install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ${target_dir})
   158 
   177