refactoring app name to spacetris and new icon
This commit is contained in:
@ -12,12 +12,19 @@ if(CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /OPT:REF /OPT:ICF")
|
||||
|
||||
# Enable whole program optimization
|
||||
set_target_properties(tetris PROPERTIES
|
||||
# Detect game target (spacetris only)
|
||||
if(TARGET spacetris)
|
||||
set(GAME_TARGET spacetris)
|
||||
else()
|
||||
message(FATAL_ERROR "No game target found (expected 'spacetris')")
|
||||
endif()
|
||||
|
||||
set_target_properties(${GAME_TARGET} PROPERTIES
|
||||
INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE
|
||||
)
|
||||
|
||||
|
||||
# Set subsystem to Windows (no console) for release
|
||||
set_target_properties(tetris PROPERTIES
|
||||
set_target_properties(${GAME_TARGET} PROPERTIES
|
||||
WIN32_EXECUTABLE TRUE
|
||||
LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup"
|
||||
)
|
||||
@ -30,61 +37,78 @@ if(CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Ensure we have a GAME_TARGET set (spacetris only)
|
||||
if(NOT DEFINED GAME_TARGET)
|
||||
if(TARGET spacetris)
|
||||
set(GAME_TARGET spacetris)
|
||||
else()
|
||||
message(FATAL_ERROR "No game target found (expected 'spacetris')")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Custom target for creating distribution package (renamed to avoid conflict with CPack)
|
||||
if(WIN32)
|
||||
# Windows-specific packaging
|
||||
add_custom_target(dist_package
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "Creating Windows distribution package..."
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/package/TetrisGame"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy "$<TARGET_FILE:tetris>" "${CMAKE_BINARY_DIR}/package/TetrisGame/"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/assets" "${CMAKE_BINARY_DIR}/package/TetrisGame/assets"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/FreeSans.ttf" "${CMAKE_BINARY_DIR}/package/TetrisGame/"
|
||||
COMMENT "Packaging Tetris for distribution"
|
||||
DEPENDS tetris
|
||||
)
|
||||
if(GAME_TARGET)
|
||||
add_custom_target(dist_package
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "Creating Windows distribution package..."
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/package/SpacetrisGame"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy "$<TARGET_FILE:${GAME_TARGET}>" "${CMAKE_BINARY_DIR}/package/SpacetrisGame/"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/assets" "${CMAKE_BINARY_DIR}/package/SpacetrisGame/assets"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/FreeSans.ttf" "${CMAKE_BINARY_DIR}/package/SpacetrisGame/"
|
||||
COMMENT "Packaging Spacetris for distribution"
|
||||
DEPENDS ${GAME_TARGET}
|
||||
)
|
||||
else()
|
||||
message(WARNING "No game target detected; skipping dist_package target.")
|
||||
endif()
|
||||
|
||||
# Try to copy SDL DLLs automatically (SDL_image no longer needed)
|
||||
find_file(SDL3_DLL SDL3.dll PATHS "${CMAKE_BINARY_DIR}/vcpkg_installed/x64-windows/bin" NO_DEFAULT_PATH)
|
||||
find_file(SDL3_TTF_DLL SDL3_ttf.dll PATHS "${CMAKE_BINARY_DIR}/vcpkg_installed/x64-windows/bin" NO_DEFAULT_PATH)
|
||||
|
||||
if(SDL3_DLL)
|
||||
add_custom_command(TARGET dist_package POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${SDL3_DLL}" "${CMAKE_BINARY_DIR}/package/TetrisGame/"
|
||||
COMMENT "Copying SDL3.dll"
|
||||
)
|
||||
endif()
|
||||
|
||||
if(SDL3_TTF_DLL)
|
||||
add_custom_command(TARGET dist_package POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${SDL3_TTF_DLL}" "${CMAKE_BINARY_DIR}/package/TetrisGame/"
|
||||
COMMENT "Copying SDL3_ttf.dll"
|
||||
)
|
||||
|
||||
if(GAME_TARGET)
|
||||
if(SDL3_DLL)
|
||||
add_custom_command(TARGET dist_package POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${SDL3_DLL}" "${CMAKE_BINARY_DIR}/package/SpacetrisGame/"
|
||||
COMMENT "Copying SDL3.dll"
|
||||
)
|
||||
endif()
|
||||
|
||||
if(SDL3_TTF_DLL)
|
||||
add_custom_command(TARGET dist_package POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${SDL3_TTF_DLL}" "${CMAKE_BINARY_DIR}/package/SpacetrisGame/"
|
||||
COMMENT "Copying SDL3_ttf.dll"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Installation rules for system-wide installation
|
||||
if(APPLE)
|
||||
install(TARGETS tetris
|
||||
BUNDLE DESTINATION .
|
||||
if(GAME_TARGET)
|
||||
if(APPLE)
|
||||
install(TARGETS ${GAME_TARGET}
|
||||
BUNDLE DESTINATION .
|
||||
COMPONENT Runtime
|
||||
)
|
||||
else()
|
||||
install(TARGETS ${GAME_TARGET}
|
||||
RUNTIME DESTINATION bin
|
||||
COMPONENT Runtime
|
||||
)
|
||||
endif()
|
||||
|
||||
install(DIRECTORY assets/
|
||||
DESTINATION share/${GAME_TARGET}/assets
|
||||
COMPONENT Runtime
|
||||
)
|
||||
else()
|
||||
install(TARGETS tetris
|
||||
RUNTIME DESTINATION bin
|
||||
|
||||
install(FILES FreeSans.ttf
|
||||
DESTINATION share/${GAME_TARGET}
|
||||
COMPONENT Runtime
|
||||
)
|
||||
endif()
|
||||
|
||||
install(DIRECTORY assets/
|
||||
DESTINATION share/tetris/assets
|
||||
COMPONENT Runtime
|
||||
)
|
||||
|
||||
install(FILES FreeSans.ttf
|
||||
DESTINATION share/tetris
|
||||
COMPONENT Runtime
|
||||
)
|
||||
|
||||
# CPack configuration for creating installers (commented out - requires LICENSE file)
|
||||
# set(CPACK_PACKAGE_NAME "Tetris")
|
||||
# set(CPACK_PACKAGE_VENDOR "TetrisGame")
|
||||
|
||||
Reference in New Issue
Block a user