From d5839169479678b0332724c85e2a249260e6df4f Mon Sep 17 00:00:00 2001 From: cpasjuste Date: Thu, 21 Mar 2019 13:25:57 +0100 Subject: [PATCH] cmake: add linux release packaging --- CMakeLists.txt | 2 +- pfba/CMakeLists.txt | 25 +++++++++++++++++++++++++ pnes/CMakeLists.txt | 26 +++++++++++++++++++++++++- psnes/CMakeLists.txt | 24 ++++++++++++++++++++++++ 4 files changed, 75 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c0413b98..03ddbf25 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,7 +23,7 @@ add_subdirectory(libcross2dui) project(pemu) # pnes -set(PNES_VERSION_MAJOR 1) +set(PNES_VERSION_MAJOR 3) set(PNES_VERSION_MINOR 1) add_subdirectory(pnes) diff --git a/pfba/CMakeLists.txt b/pfba/CMakeLists.txt index 93cb8429..a651d136 100644 --- a/pfba/CMakeLists.txt +++ b/pfba/CMakeLists.txt @@ -412,6 +412,31 @@ target_include_directories(${PROJECT_NAME}.elf PRIVATE ${INC}) target_link_libraries(${PROJECT_NAME}.elf cross2dui ${LDFLAGS}) add_dependencies(${PROJECT_NAME}.elf ${PROJECT_NAME}.data) +########################### +# LINUX (ubuntu, release) +########################### +if (BUILD_LINUX) + add_custom_target(${PROJECT_NAME}_release_linux.zip + DEPENDS ${PROJECT_NAME}.elf + COMMAND rm -rf ${CMAKE_BINARY_DIR}/release/pfba + COMMAND mkdir -p ${CMAKE_BINARY_DIR}/release/pfba + COMMAND mkdir -p ${CMAKE_BINARY_DIR}/release/pfba/skins + COMMAND mkdir -p ${CMAKE_BINARY_DIR}/release/pfba/roms + COMMAND mkdir -p ${CMAKE_BINARY_DIR}/release/pfba/hiscores + COMMAND mkdir -p ${CMAKE_BINARY_DIR}/release/pfba/titles + COMMAND mkdir -p ${CMAKE_BINARY_DIR}/release/pfba/previews + COMMAND mkdir -p ${CMAKE_BINARY_DIR}/release/pfba/icons + COMMAND cp -f ${CMAKE_CURRENT_BINARY_DIR}/pfba.elf ${CMAKE_BINARY_DIR}/release/pfba/pfba + COMMAND cp -f ${CMAKE_CURRENT_SOURCE_DIR}/pfba/data/hiscore.dat ${CMAKE_BINARY_DIR}/release/pfba/hiscores + # zip skin + COMMAND rm -rf ${CMAKE_BINARY_DIR}/release/pfba/skins/default.zip + COMMAND zip -j ${CMAKE_BINARY_DIR}/release/pfba/skins/default.zip ${CMAKE_CURRENT_SOURCE_DIR}/pfba/data/skin/* + # zip release + COMMAND rm -rf ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-${PFBA_VERSION_MAJOR}.${PFBA_VERSION_MINOR}_linux.zip + COMMAND cd ${CMAKE_BINARY_DIR}/release && zip -r ../${PROJECT_NAME}-${PFBA_VERSION_MAJOR}.${PFBA_VERSION_MINOR}_linux.zip pfba && cd ${CMAKE_BINARY_DIR} + ) +endif (BUILD_LINUX) + ##################### # PSP2 (vita) vpk ##################### diff --git a/pnes/CMakeLists.txt b/pnes/CMakeLists.txt index 53faa1c1..97319fb2 100644 --- a/pnes/CMakeLists.txt +++ b/pnes/CMakeLists.txt @@ -94,7 +94,31 @@ target_compile_options(${PROJECT_NAME}.elf PRIVATE $<$:-st target_link_libraries(${PROJECT_NAME}.elf cross2dui ${NESTOPIA_LDFLAGS}) add_dependencies(${PROJECT_NAME}.elf ${PROJECT_NAME}.data) -## TODO: use cross2d targets +########################### +# LINUX (ubuntu, release) +########################### +if (BUILD_LINUX) + add_custom_target(${PROJECT_NAME}_linux_release.zip + DEPENDS ${PROJECT_NAME}.elf + COMMAND rm -rf ${CMAKE_BINARY_DIR}/release/pnes + COMMAND mkdir -p ${CMAKE_BINARY_DIR}/release/pnes + COMMAND mkdir -p ${CMAKE_BINARY_DIR}/release/pnes/skins + COMMAND mkdir -p ${CMAKE_BINARY_DIR}/release/pnes/roms + COMMAND mkdir -p ${CMAKE_BINARY_DIR}/release/pnes/titles + COMMAND mkdir -p ${CMAKE_BINARY_DIR}/release/pnes/previews + COMMAND mkdir -p ${CMAKE_BINARY_DIR}/release/pnes/icons + COMMAND cp -f ${CMAKE_CURRENT_BINARY_DIR}/pnes.elf ${CMAKE_BINARY_DIR}/release/pnes/pnes + COMMAND cp -f ${CMAKE_SOURCE_DIR}/cores/nestopia/NstDatabase.xml ${CMAKE_BINARY_DIR}/release/pnes/ + # zip skin + COMMAND rm -rf ${CMAKE_BINARY_DIR}/release/pnes/skins/default.zip + COMMAND zip -j ${CMAKE_BINARY_DIR}/release/pnes/skins/default.zip ${CMAKE_CURRENT_SOURCE_DIR}/pnes/data/skin/* + # zip release + COMMAND rm -rf ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-${PNES_VERSION_MAJOR}.${PNES_VERSION_MINOR}_linux.zip + COMMAND cd ${CMAKE_BINARY_DIR}/release && zip -r ../${PROJECT_NAME}-${PNES_VERSION_MAJOR}.${PNES_VERSION_MINOR}_linux.zip pnes + COMMAND cd ${CMAKE_CURRENT_BINARY_DIR} + ) +endif (BUILD_LINUX) + ##################### # PSP2 (vita) target ##################### diff --git a/psnes/CMakeLists.txt b/psnes/CMakeLists.txt index eb6c1251..6bf106c5 100644 --- a/psnes/CMakeLists.txt +++ b/psnes/CMakeLists.txt @@ -138,6 +138,30 @@ target_compile_options(${PROJECT_NAME}.elf PRIVATE $<$:-fn target_link_libraries(${PROJECT_NAME}.elf cross2dui ${SNES9X_LDFLAGS}) add_dependencies(${PROJECT_NAME}.elf ${PROJECT_NAME}.data) +########################### +# LINUX (ubuntu, release) +########################### +if (BUILD_LINUX) + add_custom_target(${PROJECT_NAME}_linux_release.zip + DEPENDS ${PROJECT_NAME}.elf + COMMAND rm -rf ${CMAKE_BINARY_DIR}/release/psnes + COMMAND mkdir -p ${CMAKE_BINARY_DIR}/release/psnes + COMMAND mkdir -p ${CMAKE_BINARY_DIR}/release/psnes/skins + COMMAND mkdir -p ${CMAKE_BINARY_DIR}/release/psnes/roms + COMMAND mkdir -p ${CMAKE_BINARY_DIR}/release/psnes/titles + COMMAND mkdir -p ${CMAKE_BINARY_DIR}/release/psnes/previews + COMMAND mkdir -p ${CMAKE_BINARY_DIR}/release/psnes/icons + COMMAND cp -f ${CMAKE_CURRENT_BINARY_DIR}/psnes.elf ${CMAKE_BINARY_DIR}/release/psnes/psnes + COMMAND cp -f ${CMAKE_CURRENT_SOURCE_DIR}/psnes/data/databases/Super_Nintendo_Entertainment_System-hyperspin.xml ${CMAKE_BINARY_DIR}/release/psnes/db.xml + # zip skin + COMMAND rm -rf ${CMAKE_BINARY_DIR}/release/psnes/skins/default.zip + COMMAND zip -j ${CMAKE_BINARY_DIR}/release/psnes/skins/default.zip ${CMAKE_CURRENT_SOURCE_DIR}/psnes/data/skin/* + # zip release + COMMAND rm -rf ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-${PSNES_VERSION_MAJOR}.${PSNES_VERSION_MINOR}_linux.zip + COMMAND cd ${CMAKE_BINARY_DIR}/release && zip -r ../${PROJECT_NAME}-${PSNES_VERSION_MAJOR}.${PSNES_VERSION_MINOR}_linux.zip psnes && cd ${CMAKE_BINARY_DIR} + ) +endif (BUILD_LINUX) + ##################### # PSP2 (vita) target #####################