#MTGs common sources set(MTG_generic_src src/AbilityParser.cpp src/ActionElement.cpp src/ActionLayer.cpp src/ActionStack.cpp src/AIHints.cpp src/AIMomirPlayer.cpp src/AIPlayer.cpp src/AIPlayerBaka.cpp src/AIStats.cpp src/AllAbilities.cpp src/CardDescriptor.cpp src/CardDisplay.cpp src/CardGui.cpp src/CardPrimitive.cpp src/CardSelector.cpp src/CardSelectorSingleton.cpp src/CarouselDeckView.cpp src/Closest.cpp src/Counters.cpp src/Credits.cpp src/Damage.cpp src/DamagerDamaged.cpp src/DeckDataWrapper.cpp src/DeckEditorMenu.cpp src/DeckManager.cpp src/DeckMenu.cpp src/DeckMenuItem.cpp src/DeckMetaData.cpp src/DeckStats.cpp src/DeckView.cpp src/DuelLayers.cpp src/ExtraCost.cpp src/GameApp.cpp src/GameLauncher.cpp src/GameObserver.cpp src/GameOptions.cpp src/GameStateAwards.cpp src/GameState.cpp src/GameStateDeckViewer.cpp src/GameStateDuel.cpp src/GameStateMenu.cpp src/GameStateOptions.cpp src/GameStateShop.cpp src/GameStateStory.cpp src/GameStateTransitions.cpp src/GridDeckView.cpp src/GuiAvatars.cpp src/GuiBackground.cpp src/GuiCardsController.cpp src/GuiCombat.cpp src/GuiFrame.cpp src/GuiHand.cpp src/GuiLayers.cpp src/GuiMana.cpp src/GuiPhaseBar.cpp src/GuiPlay.cpp src/GuiStatic.cpp src/IconButton.cpp src/InteractiveButton.cpp src/ManaCost.cpp src/ManaCostHybrid.cpp src/MenuItem.cpp src/ModRules.cpp src/MTGAbility.cpp src/MTGCard.cpp src/MTGCardInstance.cpp src/MTGDeck.cpp src/MTGDefinitions.cpp src/MTGGamePhase.cpp src/MTGGameZones.cpp src/MTGPack.cpp src/MTGRules.cpp src/ObjectAnalytics.cpp src/OptionItem.cpp src/PhaseRing.cpp src/Player.cpp src/PlayerData.cpp src/PlayGuiObject.cpp src/PlayGuiObjectController.cpp src/PlayRestrictions.cpp src/Pos.cpp src/PriceList.cpp src/ReplacementEffects.cpp src/Rules.cpp src/SimpleMenu.cpp src/SimpleMenuItem.cpp src/SimpleButton.cpp src/SimplePad.cpp src/SimplePopup.cpp src/StoryFlow.cpp src/Subtypes.cpp src/StyleManager.cpp src/TargetChooser.cpp src/TargetsList.cpp src/Tasks.cpp src/TextScroller.cpp src/ThisDescriptor.cpp src/Token.cpp src/Translate.cpp src/TranslateKeys.cpp src/Trash.cpp src/utils.cpp src/WCachedResource.cpp src/WDataSrc.cpp src/WEvent.cpp src/WFilter.cpp src/WFont.cpp src/WGui.cpp src/WResourceManager.cpp ) set(MTG_network_src src/NetworkPlayer.cpp) #the sources we need if we compile a graphical qt version #TODO: add declarative version since this only works with QWidget right now set(MTG_qt_graphic_src src/qt/filedownloader.cpp src/qt/corewrapper.cpp include/qt/corewrapper.h #so automoc finds it include/qt/filedownloader.h src/Qtmain.cpp) #the sources we need to compile the testsuit set(MTG_qt_console_src src/Qtconsole.cpp src/TestSuiteAI.cpp) set(MTG_sdl_src src/SDLmain.cpp) set(MTG_android_sdl_src src/SDLmain.cpp) set(MTG_iOS_src iOS/UI/WagicDownloadProgressViewController.m iOS/asi-http-request/ASIAuthenticationDialog.m iOS/asi-http-request/ASIDataCompressor.m iOS/asi-http-request/ASIDataDecompressor.m iOS/asi-http-request/ASIDownloadCache.m iOS/asi-http-request/ASIFormDataRequest.m iOS/asi-http-request/ASIHTTPRequest.m iOS/asi-http-request/ASIInputStream.m iOS/asi-http-request/ASINetworkQueue.m iOS/SoundManager/SoundManager.m iOS/SoundManager/MyOpenALSupport.c iOS/Reachability/Reachability/Reachability.m iOS/ZipArchive/ZipArchive.mm) set(MTG_iOS_INCLUDE_DIRS iOS/UI iOS/Reachability/Reachability iOS/asi-http-request iOS/ZipArchive iOS/SoundManager) set(MTG_INCLUDE_DIRS include include/qt) set(JGE_INCLUDE_DIRS ../../JGE/include ../../JGE/include/hge) set(JGE_LIBRARY jge) set(EXTRA_INCLUDE_DIR extra) #turn moc on if(backend_qt_console OR backend_qt_widget) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC TRUE) endif() if(backend_qt_console) if(UNIX AND NOT ANDROID) include_directories(${MTG_INCLUDE_DIRS} ${JGE_INCLUDE_DIRS} ${ZIPFS_INCLUDE_DIR} ${Qt5Core_INCLUDE_DIRS} ${Qt5Multimedia_INCLUDE_DIRS} ${UNZIP_INCLUDE_DIR} ${HGE_INCLUDE_DIR} ${TINYXML_INCLUDE_DIR} ${QT_MKSPECS_DIR}/default) add_executable(wagic ${MTG_generic_src} ${MTG_qt_console_src} ${MTG_network_src}) target_link_libraries(wagic ${JGE_LIBRARY} ${Qt5Core_INCLUDE_DIRS} ${Qt5Multimedia_INCLUDE_DIRS} ${TINYXML_LIBRARIES} ${HGE_LIBRARY} ${ZLIB_LIBRARIES}) else() message(FATAL_ERROR "qt-console builds are only supported on unix platforms") endif() elseif(backend_qt_widget) if(UNIX AND NOT ANDROID) include_directories(${MTG_INCLUDE_DIRS} ${JGE_INCLUDE_DIRS} ${ZIPFS_INCLUDE_DIR} ${Qt5Core_INCLUDE_DIRS} ${Qt5Multimedia_INCLUDE_DIRS} ${UNZIP_INCLUDE_DIR} ${HGE_INCLUDE_DIR} ${TINYXML_INCLUDE_DIR} ${QT_MKSPECS_DIR}/default) add_executable(wagic ${MTG_generic_src} ${MTG_qt_graphic_src} ${MTG_network_src}) target_link_libraries(wagic ${JGE_LIBRARY} ${Qt5Core_INCLUDE_DIRS} ${Qt5Multimedia_INCLUDE_DIRS} ${OPENGL_LIBRARIES} ${TINYXML_LIBRARIES} ${HGE_LIBRARY} ${ZLIB_LIBRARIES})# ${X11_LIBRARIES}) else() message(FATAL_ERROR "qt-widget builds are only supported on unix platforms") endif() elseif(backend_sdl) if((UNIX OR EMSCRIPTEN) AND NOT ANDROID) include_directories(${MTG_INCLUDE_DIRS} ${JGE_INCLUDE_DIRS} ${SDL2_INCLUDE_DIR} ${ZIPFS_INCLUDE_DIR} ${UNZIP_INCLUDE_DIR} ${HGE_INCLUDE_DIR} ${TINYXML_INCLUDE_DIR} ${ZLIB_INCLUDE_DIRS}) add_executable(wagic ${MTG_generic_src} ${MTG_sdl_src} ${MTG_network_src} src/TestSuiteAI.cpp src/AIPlayerBakaB.cpp) target_link_libraries(wagic ${JGE_LIBRARY} ${SDL2_LIBRARY} ${OPENGL_LIBRARIES} ${TINYXML_LIBRARIES} ${HGE_LIBRARY} ${ZLIB_LIBRARIES}) elseif(ANDROID) include_directories(${MTG_INCLUDE_DIRS} ${JGE_INCLUDE_DIRS} ${SDL2_INCLUDE_DIR} ${ZIPFS_INCLUDE_DIR} ${BOOST_INCLUDE_DIRS} ${UNZIP_INCLUDE_DIR} ${HGE_INCLUDE_DIR} ${TINYXML_INCLUDE_DIR}) #we should try to get rid of this hack add_library(wagic SHARED ${MTG_generic_src} ${MTG_network_src} ${MTG_android_sdl_src} src/TestSuiteAI.cpp) target_link_libraries(wagic ${JGE_LIBRARY} ${SDL2_LIBRARY} ${OPENGL_LIBRARIES} ${TINYXML_LIBRARIES} ${HGE_LIBRARY} ${ZLIB_LIBRARIES}) elseif(WIN32) include_directories(${EXTRA_INCLUDE_DIR} ${MTG_INCLUDE_DIRS} ${JGE_INCLUDE_DIRS} ${SDL2_INCLUDE_DIR} ${ZIPFS_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} ${UNZIP_INCLUDE_DIR} ${HGE_INCLUDE_DIR} ${TINYXML_INCLUDE_DIR} ${ZLIB_INCLUDE_DIRS}) add_executable(wagic ${MTG_generic_src} ${MTG_sdl_src} src/TestSuiteAI.cpp src/AIPlayerBakaB.cpp) link_directories(${Boost_LIBRARY_DIR} ${SDL2_LIBRARY_DIR}) target_link_libraries(wagic ${JGE_LIBRARY} ${SDL2_LIBRARY} ${OPENGL_LIBRARIES} ${TINYXML_LIBRARIES} ${BOOST_date_time} ${HGE_LIBRARY} ${ZLIB_LIBRARIES}) endif() elseif(backend_psp) if(PSP) #${PSPSDK_PATH}/include include_directories(${MTG_INCLUDE_DIRS} ${JGE_INCLUDE_DIRS} ${TINYXML_INCLUDE_DIR} ${ZIPFS_INCLUDE_DIR} ${UNZIP_INCLUDE_DIR} ${BOOST_INCLUDE_DIRS} ${GIF_INCLUDE_DIR} ${HGETOOLS_INCLUDE_DIRS}) add_executable(wagic ${MTG_generic_src} ${MTG_network_src}) target_link_libraries(wagic ${JGE_LIBRARY} ${PSPSDK_LIB} ${HGETOOLS_LIBRARY} ${FREETYPE_LIB} ${JPEG_LIBRARY} ${GIF_LIBRARIES} ${PNG_LIBRARIES} z m ${MIKMOD_LIBRARY} ${TINYXML_LIBRARIES} stdc++ ${PSPSDK_REQUIRED_LIB}) set(PRXSPECS_FILE "${PSPSDK_PATH}/lib/prxspecs") set(LINKFILE_FILE "${PSPSDK_PATH}/lib/linkfile.prx") get_property(wagic_elf_location TARGET wagic PROPERTY LOCATION) get_filename_component(wagic_elf_directory ${wagic_elf_location} PATH) set_target_properties(wagic PROPERTIES LINK_FLAGS "-specs=${PRXSPECS_FILE} -Wl,-q,-T${LINKFILE_FILE}") add_custom_command(TARGET wagic POST_BUILD COMMAND ${PSPSDK_MKSFO_COMMAND} ARGS "'Wagic, the Homebrew?!'" "${wagic_elf_directory}/PARAM.SFO" COMMAND ${PSPSDK_FIXUP_IMPORTS_COMMAND} ARGS ${wagic_elf_location} COMMAND ${PSPSDK_PRXGEN_COMMAND} ARGS ${wagic_elf_location} "${wagic_elf_directory}/wagic.prx" COMMAND ${PSPSDK_PACK_PBP_COMMAND} ARGS ${wagic_elf_directory}/EBOOT.PBP ${wagic_elf_directory}/PARAM.SFO ${CMAKE_CURRENT_SOURCE_DIR}/icon.png NULL ${CMAKE_CURRENT_SOURCE_DIR}/pic0.png ${CMAKE_CURRENT_SOURCE_DIR}/pic1.png NULL "${wagic_elf_directory}/wagic.prx" NULL) else() message(FATAL_ERROR "use the cross-compile toolchain to build as the psp target") endif() endif() if(IOS) set(MTG_generic_src ${MTG_generic_src} ${MTG_iOS_src} PARENT_SCOPE) set(MTG_INCLUDE_DIRS ${MTG_INCLUDE_DIRS} ${MTG_iOS_INCLUDE_DIRS} PARENT_SCOPE) endif()