CMakeLists.txt 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. cmake_minimum_required(VERSION 2.8.11)
  2. # Project name without spaces or special characters
  3. project("freeshop")
  4. set(APP_TITLE "freeShop")
  5. set(APP_DESCRIPTION "Open source eShop clone")
  6. set(APP_AUTHOR "Cruel")
  7. set(APP_ICON ${PROJECT_SOURCE_DIR}/res/app/icon.png)
  8. set(APP_VERSION 1)
  9. # CIA settings
  10. set(APP_UNIQUE_ID 0xF12EE) # This must be unique for your CIA project
  11. set(APP_PRODUCT_CODE ${PROJECT_NAME})
  12. set(BANNER_IMAGE ${PROJECT_SOURCE_DIR}/res/app/banner.png)
  13. set(BANNER_SOUND ${PROJECT_SOURCE_DIR}/res/app/banner.wav)
  14. set(CIA_CONFIG ${PROJECT_SOURCE_DIR}/res/app/cia.rsf)
  15. # Include cpp3ds cmake module
  16. set(CPP3DS $ENV{CPP3DS})
  17. if(NOT CPP3DS)
  18. message(FATAL_ERROR "You need to set the env variable CPP3DS before compiling.")
  19. endif()
  20. set(CMAKE_MODULE_PATH "${CPP3DS}/cmake" ${CMAKE_MODULE_PATH})
  21. include(cpp3ds)
  22. include_directories(
  23. ${PROJECT_SOURCE_DIR}/external/tween-engine/include
  24. ${PROJECT_SOURCE_DIR}/external/rapidjson/include
  25. )
  26. FILE(GLOB_RECURSE TWEEN_ENGINE_SOURCE ${PROJECT_SOURCE_DIR}/external/tween-engine/src/*.cpp)
  27. set(SOURCE_FILES
  28. ${PROJECT_SOURCE_DIR}/src/main.cpp
  29. ${PROJECT_SOURCE_DIR}/src/AppItem.cpp
  30. ${PROJECT_SOURCE_DIR}/src/AppList.cpp
  31. ${PROJECT_SOURCE_DIR}/src/AppInfo.cpp
  32. ${PROJECT_SOURCE_DIR}/src/Config.cpp
  33. ${PROJECT_SOURCE_DIR}/src/IconSet.cpp
  34. ${PROJECT_SOURCE_DIR}/src/FreeShop.cpp
  35. ${PROJECT_SOURCE_DIR}/src/Util.cpp
  36. ${PROJECT_SOURCE_DIR}/src/RichText.cpp
  37. ${PROJECT_SOURCE_DIR}/src/Download.cpp
  38. ${PROJECT_SOURCE_DIR}/src/DownloadQueue.cpp
  39. ${PROJECT_SOURCE_DIR}/src/AssetManager.hpp
  40. ${PROJECT_SOURCE_DIR}/src/Notification.cpp
  41. ${PROJECT_SOURCE_DIR}/src/Keyboard/Keyboard.cpp
  42. ${PROJECT_SOURCE_DIR}/src/Keyboard/tinyxml2.cpp
  43. ${PROJECT_SOURCE_DIR}/src/GUI/Button.cpp
  44. ${PROJECT_SOURCE_DIR}/src/GUI/NinePatch.cpp
  45. ${PROJECT_SOURCE_DIR}/src/States/State.cpp
  46. ${PROJECT_SOURCE_DIR}/src/States/StateStack.cpp
  47. ${PROJECT_SOURCE_DIR}/src/States/LoadingState.cpp
  48. ${PROJECT_SOURCE_DIR}/src/States/TitleState.cpp
  49. ${PROJECT_SOURCE_DIR}/src/States/BrowseState.cpp
  50. ${PROJECT_SOURCE_DIR}/src/States/SyncState.cpp
  51. ${TWEEN_ENGINE_SOURCE}
  52. )
  53. set(ARM_SOURCE_FILES
  54. ${PROJECT_SOURCE_DIR}/src/Installer.cpp
  55. )
  56. set(EMU_SOURCE_FILES
  57. ${PROJECT_SOURCE_DIR}/src/Installer_emu.cpp
  58. )
  59. # Use either nihstro or picasso for your shader scripts
  60. set(SHADER_AS nihstro)
  61. FILE(GLOB_RECURSE SHADER_FILES ${PROJECT_SOURCE_DIR}/res/romfs/shaders/[^.]*.vsh)
  62. ##################################################
  63. # Don't usually need to change anything below
  64. ##################################################
  65. set(CPP3DS_ARM_FLAGS "-O2 -march=armv6k -mtune=mpcore -mfloat-abi=hard -mtp=soft")
  66. set(CPP3DS_EMU_FLAGS "-O0")
  67. set(CPP3DS_ARM_LIBS cpp3ds-window cpp3ds-network cpp3ds-graphics cpp3ds-audio cpp3ds-system citro3d ctru freetype png z vorbisenc vorbisfile vorbis ogg archive)
  68. set(CPP3DS_EMU_LIBS cpp3ds-emu sfml-graphics sfml-window sfml-system sfml-audio openal GLEW GL jpeg freetype vorbisenc vorbisfile vorbis ogg ssl crypto pthread archive)
  69. add_subdirectory(${CPP3DS}/cmake/template_arm build/arm)
  70. add_subdirectory(${CPP3DS}/cmake/template_emu build/emu)