Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cmake_minimum_required(VERSION 2.8)
- if(NOT DEFINED CMAKE_TOOLCHAIN_FILE)
- if(DEFINED ENV{VITASDK})
- set(CMAKE_TOOLCHAIN_FILE "$ENV{VITASDK}/share/vita.toolchain.cmake" CACHE PATH "toolchain file")
- else()
- message(FATAL_ERROR "Please define VITASDK to point to your SDK path!")
- endif()
- endif()
- set(SHORT_NAME gxm_textured_cube_sample)
- project(${SHORT_NAME})
- include("${VITASDK}/share/vita.cmake" REQUIRED)
- set(VITA_APP_NAME "GXM Textured cube example")
- set(VITA_TITLEID "VSDK00017")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
- include_directories(
- include
- )
- set(VERTEX_SHADERS
- shader/clear_v.cg
- shader/texture_v.cg
- )
- set(FRAGMENT_SHADERS
- shader/clear_f.cg
- shader/texture_f.cg
- )
- set(DATA
- data/kitten.bin
- )
- foreach(shader ${VERTEX_SHADERS})
- get_filename_component(shader_we ${shader} NAME_WE)
- add_custom_command(OUTPUT "${shader_we}.gxp"
- COMMAND $ENV{PSP2CGC} -profile sce_vp_psp2 "${PROJECT_SOURCE_DIR}/${shader}"
- -o "${CMAKE_BINARY_DIR}/${shader_we}.gxp"
- DEPENDS ${shader}
- COMMENT "Compiling ${shader} to ${shader_we}.gxp"
- )
- list(APPEND SHADER_GXPS "${shader_we}.gxp")
- endforeach()
- foreach(shader ${FRAGMENT_SHADERS})
- get_filename_component(shader_we ${shader} NAME_WE)
- add_custom_command(OUTPUT "${shader_we}.gxp"
- COMMAND $ENV{PSP2CGC} -profile sce_fp_psp2 "${PROJECT_SOURCE_DIR}/${shader}"
- -o "${CMAKE_BINARY_DIR}/${shader_we}.gxp"
- DEPENDS ${shader}
- COMMENT "Compiling ${shader} to ${shader_we}.gxp"
- )
- list(APPEND SHADER_GXPS "${shader_we}.gxp")
- endforeach()
- foreach(gxp ${SHADER_GXPS})
- get_filename_component(gxp_we ${gxp} NAME_WE)
- add_custom_command(OUTPUT "${gxp_we}_gxp.o"
- COMMAND arm-vita-eabi-objcopy --input binary --output elf32-littlearm
- --binary-architecture arm "${gxp}"
- "${CMAKE_BINARY_DIR}/${gxp_we}_gxp.o"
- WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
- DEPENDS ${gxp}
- COMMENT "Objcopying ${gxp} to ${gxp_we}_gxp.o"
- )
- list(APPEND SHADER_OBJECTS "${gxp_we}_gxp.o")
- endforeach()
- foreach(data ${DATA})
- get_filename_component(data_we ${data} NAME_WE)
- get_filename_component(data_name "${PROJECT_SOURCE_DIR}/${data}" NAME)
- get_filename_component(data_path "${PROJECT_SOURCE_DIR}/${data}" DIRECTORY)
- add_custom_command(OUTPUT "${data_we}_data.o"
- COMMAND arm-vita-eabi-objcopy --input binary --output elf32-littlearm
- --binary-architecture arm "${data_name}"
- "${CMAKE_BINARY_DIR}/${data_we}_data.o"
- WORKING_DIRECTORY "${data_path}"
- DEPENDS ${data}
- COMMENT "Objcopying ${data} to ${data_we}_data.o"
- )
- list(APPEND DATA_OBJECTS "${data_we}_data.o")
- endforeach()
- add_executable(${SHORT_NAME}
- src/main.c
- src/math_utils.c
- ${SHADER_OBJECTS}
- ${DATA_OBJECTS}
- )
- target_link_libraries(${SHORT_NAME}
- m
- SceDisplay_stub
- SceGxm_stub
- SceCtrl_stub
- SceAudio_stub
- )
- vita_create_self(${SHORT_NAME}.self ${SHORT_NAME})
- vita_create_vpk(${SHORT_NAME}.vpk ${VITA_TITLEID} ${SHORT_NAME}.self
- VERSION ${VITA_VERSION}
- NAME ${VITA_APP_NAME}
- )
- add_custom_target(vpksend
- COMMAND curl -T ${SHORT_NAME}.vpk ftp://$(PSVITAIP):1337/ux0:/
- DEPENDS ${SHORT_NAME}.vpk
- )
- add_custom_target(send
- COMMAND curl -T ${SHORT_NAME}.self ftp://$(PSVITAIP):1337/ux0:/app/${VITA_TITLEID}/eboot.bin
- DEPENDS ${SHORT_NAME}.self
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement