Advertisement
xerpi

CMake vita data

Feb 5th, 2017
438
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.30 KB | None | 0 0
  1. cmake_minimum_required(VERSION 2.8)
  2.  
  3. if(NOT DEFINED CMAKE_TOOLCHAIN_FILE)
  4.   if(DEFINED ENV{VITASDK})
  5.     set(CMAKE_TOOLCHAIN_FILE "$ENV{VITASDK}/share/vita.toolchain.cmake" CACHE PATH "toolchain file")
  6.   else()
  7.     message(FATAL_ERROR "Please define VITASDK to point to your SDK path!")
  8.   endif()
  9. endif()
  10.  
  11. set(SHORT_NAME gxm_textured_cube_sample)
  12. project(${SHORT_NAME})
  13. include("${VITASDK}/share/vita.cmake" REQUIRED)
  14.  
  15. set(VITA_APP_NAME "GXM Textured cube example")
  16. set(VITA_TITLEID  "VSDK00017")
  17.  
  18. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11")
  19. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
  20.  
  21. include_directories(
  22.     include
  23. )
  24.  
  25. set(VERTEX_SHADERS
  26.     shader/clear_v.cg
  27.     shader/texture_v.cg
  28. )
  29.  
  30. set(FRAGMENT_SHADERS
  31.     shader/clear_f.cg
  32.     shader/texture_f.cg
  33. )
  34.  
  35. set(DATA
  36.     data/kitten.bin
  37. )
  38.  
  39. foreach(shader ${VERTEX_SHADERS})
  40.     get_filename_component(shader_we ${shader} NAME_WE)
  41.     add_custom_command(OUTPUT "${shader_we}.gxp"
  42.         COMMAND $ENV{PSP2CGC} -profile sce_vp_psp2 "${PROJECT_SOURCE_DIR}/${shader}"
  43.             -o "${CMAKE_BINARY_DIR}/${shader_we}.gxp"
  44.         DEPENDS ${shader}
  45.         COMMENT "Compiling ${shader} to ${shader_we}.gxp"
  46.     )
  47.     list(APPEND SHADER_GXPS "${shader_we}.gxp")
  48. endforeach()
  49.  
  50. foreach(shader ${FRAGMENT_SHADERS})
  51.     get_filename_component(shader_we ${shader} NAME_WE)
  52.     add_custom_command(OUTPUT "${shader_we}.gxp"
  53.         COMMAND $ENV{PSP2CGC} -profile sce_fp_psp2 "${PROJECT_SOURCE_DIR}/${shader}"
  54.             -o "${CMAKE_BINARY_DIR}/${shader_we}.gxp"
  55.         DEPENDS ${shader}
  56.         COMMENT "Compiling ${shader} to ${shader_we}.gxp"
  57.     )
  58.     list(APPEND SHADER_GXPS "${shader_we}.gxp")
  59. endforeach()
  60.  
  61. foreach(gxp ${SHADER_GXPS})
  62.     get_filename_component(gxp_we ${gxp} NAME_WE)
  63.     add_custom_command(OUTPUT "${gxp_we}_gxp.o"
  64.         COMMAND arm-vita-eabi-objcopy --input binary --output elf32-littlearm
  65.             --binary-architecture arm "${gxp}"
  66.             "${CMAKE_BINARY_DIR}/${gxp_we}_gxp.o"
  67.         WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
  68.         DEPENDS ${gxp}
  69.         COMMENT "Objcopying ${gxp} to ${gxp_we}_gxp.o"
  70.     )
  71.     list(APPEND SHADER_OBJECTS "${gxp_we}_gxp.o")
  72. endforeach()
  73.  
  74. foreach(data ${DATA})
  75.     get_filename_component(data_we ${data} NAME_WE)
  76.     get_filename_component(data_name "${PROJECT_SOURCE_DIR}/${data}" NAME)
  77.     get_filename_component(data_path "${PROJECT_SOURCE_DIR}/${data}" DIRECTORY)
  78.     add_custom_command(OUTPUT "${data_we}_data.o"
  79.         COMMAND arm-vita-eabi-objcopy --input binary --output elf32-littlearm
  80.             --binary-architecture arm "${data_name}"
  81.             "${CMAKE_BINARY_DIR}/${data_we}_data.o"
  82.         WORKING_DIRECTORY "${data_path}"
  83.         DEPENDS ${data}
  84.         COMMENT "Objcopying ${data} to ${data_we}_data.o"
  85.     )
  86.     list(APPEND DATA_OBJECTS "${data_we}_data.o")
  87. endforeach()
  88.  
  89. add_executable(${SHORT_NAME}
  90.   src/main.c
  91.   src/math_utils.c
  92.   ${SHADER_OBJECTS}
  93.   ${DATA_OBJECTS}
  94. )
  95.  
  96. target_link_libraries(${SHORT_NAME}
  97.   m
  98.   SceDisplay_stub
  99.   SceGxm_stub
  100.   SceCtrl_stub
  101.   SceAudio_stub
  102. )
  103.  
  104. vita_create_self(${SHORT_NAME}.self ${SHORT_NAME})
  105. vita_create_vpk(${SHORT_NAME}.vpk ${VITA_TITLEID} ${SHORT_NAME}.self
  106.   VERSION ${VITA_VERSION}
  107.   NAME ${VITA_APP_NAME}
  108. )
  109.  
  110. add_custom_target(vpksend
  111.     COMMAND curl -T ${SHORT_NAME}.vpk ftp://$(PSVITAIP):1337/ux0:/
  112.     DEPENDS ${SHORT_NAME}.vpk
  113. )
  114.  
  115. add_custom_target(send
  116.     COMMAND curl -T ${SHORT_NAME}.self ftp://$(PSVITAIP):1337/ux0:/app/${VITA_TITLEID}/eboot.bin
  117.     DEPENDS ${SHORT_NAME}.self
  118. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement