This commit is contained in:
@@ -259,6 +259,16 @@ else()
|
|||||||
target_link_libraries(${PROJECT_NAME} PRIVATE OpenGL::GL)
|
target_link_libraries(${PROJECT_NAME} PRIVATE OpenGL::GL)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(WIN32 AND NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
|
||||||
|
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND}
|
||||||
|
-DBIN_DIR="$<TARGET_FILE_DIR:${PROJECT_NAME}>"
|
||||||
|
-DEXE_FILE="$<TARGET_FILE_NAME:${PROJECT_NAME}>"
|
||||||
|
-DPACKAGE_NAME="snivy-win32"
|
||||||
|
-P "${CMAKE_CURRENT_SOURCE_DIR}/cmake/create_windows_zip.cmake"
|
||||||
|
COMMENT "Creating snivy-win32.zip package")
|
||||||
|
endif()
|
||||||
|
|
||||||
message(STATUS "System: ${CMAKE_SYSTEM_NAME}")
|
message(STATUS "System: ${CMAKE_SYSTEM_NAME}")
|
||||||
message(STATUS "Project: ${PROJECT_NAME}")
|
message(STATUS "Project: ${PROJECT_NAME}")
|
||||||
message(STATUS "Compiler: ${CMAKE_CXX_COMPILER}")
|
message(STATUS "Compiler: ${CMAKE_CXX_COMPILER}")
|
||||||
|
|||||||
38
cmake/create_windows_zip.cmake
Normal file
38
cmake/create_windows_zip.cmake
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
if(NOT DEFINED BIN_DIR OR BIN_DIR STREQUAL "")
|
||||||
|
message(FATAL_ERROR "BIN_DIR is required")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT DEFINED EXE_FILE OR EXE_FILE STREQUAL "")
|
||||||
|
message(FATAL_ERROR "EXE_FILE is required")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT DEFINED PACKAGE_NAME OR PACKAGE_NAME STREQUAL "")
|
||||||
|
set(PACKAGE_NAME "snivy-win32")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(EXE_PATH "${BIN_DIR}/${EXE_FILE}")
|
||||||
|
set(PACKAGE_DIR "${BIN_DIR}/${PACKAGE_NAME}")
|
||||||
|
set(ARCHIVE_PATH "${BIN_DIR}/${PACKAGE_NAME}.zip")
|
||||||
|
|
||||||
|
file(REMOVE_RECURSE "${PACKAGE_DIR}")
|
||||||
|
file(REMOVE "${ARCHIVE_PATH}")
|
||||||
|
file(MAKE_DIRECTORY "${PACKAGE_DIR}")
|
||||||
|
|
||||||
|
if(EXISTS "${EXE_PATH}")
|
||||||
|
file(COPY "${EXE_PATH}" DESTINATION "${PACKAGE_DIR}")
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "Executable not found: ${EXE_PATH}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(EXISTS "${BIN_DIR}/resources")
|
||||||
|
file(COPY "${BIN_DIR}/resources" DESTINATION "${PACKAGE_DIR}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
execute_process(
|
||||||
|
COMMAND "${CMAKE_COMMAND}" -E tar cf "${PACKAGE_NAME}.zip" --format=zip "${PACKAGE_NAME}"
|
||||||
|
WORKING_DIRECTORY "${BIN_DIR}"
|
||||||
|
RESULT_VARIABLE ZIP_RESULT
|
||||||
|
)
|
||||||
|
if(NOT ZIP_RESULT EQUAL 0)
|
||||||
|
message(FATAL_ERROR "Failed creating ${ARCHIVE_PATH}")
|
||||||
|
endif()
|
||||||
Reference in New Issue
Block a user