hedgewars/CMakeLists.txt
changeset 2003 41b3d00949ca
parent 1997 cd66434351cf
child 2015 d2848d723690
equal deleted inserted replaced
2002:37c71f5983c9 2003:41b3d00949ca
    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