|
@@ -2042,142 +2042,140 @@ if(NOT ANDROID)
|
|
|
endif()
|
|
|
endif()
|
|
|
|
|
|
-if (NOT MSVC OR MINGW)
|
|
|
- return()
|
|
|
-endif()
|
|
|
-
|
|
|
-###################################
|
|
|
-# Version
|
|
|
-###################################
|
|
|
-
|
|
|
-# Extract version.h contents.
|
|
|
-file(READ ${CMAKE_CURRENT_SOURCE_DIR}/src/common/version.h LOVE_VERSION_FILE_CONTENTS)
|
|
|
+if("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
|
|
|
+ ###################################
|
|
|
+ # Version
|
|
|
+ ###################################
|
|
|
+
|
|
|
+ # Extract version.h contents.
|
|
|
+ file(READ ${CMAKE_CURRENT_SOURCE_DIR}/src/common/version.h LOVE_VERSION_FILE_CONTENTS)
|
|
|
+
|
|
|
+ # Extract one of LOVE_VERSION_MAJOR/MINOR/REV.
|
|
|
+ function(match_version ARG_STRING OUT_VAR)
|
|
|
+ string(REGEX MATCH "VERSION_${ARG_STRING} = ([0-9]+);" TMP_VER "${LOVE_VERSION_FILE_CONTENTS}")
|
|
|
+ string(REGEX MATCH "[0-9]+" TMP_VER "${TMP_VER}")
|
|
|
+ set(${OUT_VAR} ${TMP_VER} PARENT_SCOPE)
|
|
|
+ endfunction()
|
|
|
|
|
|
-# Extract one of LOVE_VERSION_MAJOR/MINOR/REV.
|
|
|
-function(match_version ARG_STRING OUT_VAR)
|
|
|
- string(REGEX MATCH "VERSION_${ARG_STRING} = ([0-9]+);" TMP_VER "${LOVE_VERSION_FILE_CONTENTS}")
|
|
|
- string(REGEX MATCH "[0-9]+" TMP_VER "${TMP_VER}")
|
|
|
- set(${OUT_VAR} ${TMP_VER} PARENT_SCOPE)
|
|
|
-endfunction()
|
|
|
+ match_version("MAJOR" LOVE_VERSION_MAJOR)
|
|
|
+ match_version("MINOR" LOVE_VERSION_MINOR)
|
|
|
+ match_version("REV" LOVE_VERSION_REV)
|
|
|
|
|
|
-match_version("MAJOR" LOVE_VERSION_MAJOR)
|
|
|
-match_version("MINOR" LOVE_VERSION_MINOR)
|
|
|
-match_version("REV" LOVE_VERSION_REV)
|
|
|
+ set(LOVE_VERSION_STR "${LOVE_VERSION_MAJOR}.${LOVE_VERSION_MINOR}")
|
|
|
|
|
|
-set(LOVE_VERSION_STR "${LOVE_VERSION_MAJOR}.${LOVE_VERSION_MINOR}")
|
|
|
+ message(STATUS "Version: ${LOVE_VERSION_STR}")
|
|
|
|
|
|
-message(STATUS "Version: ${LOVE_VERSION_STR}")
|
|
|
+ ###################################
|
|
|
+ # CPack
|
|
|
+ ###################################
|
|
|
+ install(TARGETS ${LOVE_EXE_NAME} ${LOVE_CONSOLE_EXE_NAME} ${LOVE_LIB_NAME} RUNTIME DESTINATION .)
|
|
|
|
|
|
-###################################
|
|
|
-# CPack
|
|
|
-###################################
|
|
|
-install(TARGETS ${LOVE_EXE_NAME} ${LOVE_CONSOLE_EXE_NAME} ${LOVE_LIB_NAME} RUNTIME DESTINATION .)
|
|
|
+ # Our install script (and NSIS) doesn't fully support Windows ARM64 yet.
|
|
|
+ if(MEGA_ARM64)
|
|
|
+ set(CPACK_GENERATOR ZIP)
|
|
|
+ set(CPACK_SYSTEM_NAME woa64)
|
|
|
+ else()
|
|
|
+ set(CPACK_GENERATOR ZIP NSIS)
|
|
|
+ endif()
|
|
|
|
|
|
-# Our install script (and NSIS) doesn't fully support Windows ARM64 yet.
|
|
|
-if(MEGA_ARM64)
|
|
|
- set(CPACK_GENERATOR ZIP)
|
|
|
- set(CPACK_SYSTEM_NAME woa64)
|
|
|
-else()
|
|
|
- set(CPACK_GENERATOR ZIP NSIS)
|
|
|
-endif()
|
|
|
+ # Extra DLLs.
|
|
|
+ if(LOVE_EXTRA_DLLS)
|
|
|
+ foreach(DLL ${LOVE_EXTRA_DLLS})
|
|
|
+ get_filename_component(DLL_NAME ${DLL} NAME)
|
|
|
+ message(STATUS "Extra DLL: ${DLL_NAME}")
|
|
|
+ endforeach()
|
|
|
+ install(FILES ${LOVE_EXTRA_DLLS} DESTINATION .)
|
|
|
+ endif()
|
|
|
|
|
|
-# Extra DLLs.
|
|
|
-if(LOVE_EXTRA_DLLS)
|
|
|
- foreach(DLL ${LOVE_EXTRA_DLLS})
|
|
|
- get_filename_component(DLL_NAME ${DLL} NAME)
|
|
|
- message(STATUS "Extra DLL: ${DLL_NAME}")
|
|
|
- endforeach()
|
|
|
- install(FILES ${LOVE_EXTRA_DLLS} DESTINATION .)
|
|
|
-endif()
|
|
|
+ # Dynamic runtime libs.
|
|
|
+ if(LOVE_MSVC_DLLS)
|
|
|
+ foreach(DLL ${LOVE_MSVC_DLLS})
|
|
|
+ get_filename_component(DLL_NAME ${DLL} NAME)
|
|
|
+ message(STATUS "Runtime DLL: ${DLL_NAME}")
|
|
|
+ endforeach()
|
|
|
+ install(FILES ${LOVE_MSVC_DLLS} DESTINATION .)
|
|
|
+ endif()
|
|
|
|
|
|
-# Dynamic runtime libs.
|
|
|
-if(LOVE_MSVC_DLLS)
|
|
|
- foreach(DLL ${LOVE_MSVC_DLLS})
|
|
|
- get_filename_component(DLL_NAME ${DLL} NAME)
|
|
|
- message(STATUS "Runtime DLL: ${DLL_NAME}")
|
|
|
- endforeach()
|
|
|
- install(FILES ${LOVE_MSVC_DLLS} DESTINATION .)
|
|
|
-endif()
|
|
|
+ # Copy a text file from CMAKE_CURRENT_SOURCE_DIR to CMAKE_CURRENT_BINARY_DIR.
|
|
|
+ # On Windows, this function will convert line endings to CR,LF.
|
|
|
+ function(copy_text_file ARG_FILE_IN ARG_FILE_OUT)
|
|
|
+ file(READ ${CMAKE_CURRENT_SOURCE_DIR}/${ARG_FILE_IN} TMP_TXT_CONTENTS)
|
|
|
+ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${ARG_FILE_OUT} ${TMP_TXT_CONTENTS})
|
|
|
+ endfunction()
|
|
|
|
|
|
-# Copy a text file from CMAKE_CURRENT_SOURCE_DIR to CMAKE_CURRENT_BINARY_DIR.
|
|
|
-# On Windows, this function will convert line endings to CR,LF.
|
|
|
-function(copy_text_file ARG_FILE_IN ARG_FILE_OUT)
|
|
|
- file(READ ${CMAKE_CURRENT_SOURCE_DIR}/${ARG_FILE_IN} TMP_TXT_CONTENTS)
|
|
|
- file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${ARG_FILE_OUT} ${TMP_TXT_CONTENTS})
|
|
|
-endfunction()
|
|
|
+ # Text files.
|
|
|
+ copy_text_file(readme.md readme.txt)
|
|
|
+ copy_text_file(license.txt license.txt)
|
|
|
+ copy_text_file(changes.txt changes.txt)
|
|
|
+
|
|
|
+ install(FILES
|
|
|
+ ${CMAKE_CURRENT_BINARY_DIR}/changes.txt
|
|
|
+ ${CMAKE_CURRENT_BINARY_DIR}/license.txt
|
|
|
+ ${CMAKE_CURRENT_BINARY_DIR}/readme.txt
|
|
|
+ DESTINATION .)
|
|
|
+
|
|
|
+ # Icons
|
|
|
+ install(FILES
|
|
|
+ ${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis/love.ico
|
|
|
+ ${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis/game.ico
|
|
|
+ DESTINATION .)
|
|
|
+
|
|
|
+ set(CPACK_PACKAGE_NAME "love")
|
|
|
+ set(CPACK_PACKAGE_VENDOR "love2d.org")
|
|
|
+ set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "LOVE -- It's awesome")
|
|
|
+ set(CPACK_PACKAGE_VERSION "${LOVE_VERSION_STR}")
|
|
|
+ set(CPACK_PACKAGE_VERSION_MAJOR "${LOVE_VERSION_MAJOR}")
|
|
|
+ set(CPACK_PACKAGE_VERSION_MINOR "${LOVE_VERSION_MINOR}")
|
|
|
+ set(CPACK_PACKAGE_VERSION_PATCH "${LOVE_VERSION_REV}")
|
|
|
+ set(CPACK_PACKAGE_INSTALL_DIRECTORY "LOVE")
|
|
|
+ set(CPACK_PACKAGE_EXECUTABLES "${LOVE_EXE_NAME};LOVE")
|
|
|
+ set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/readme.md")
|
|
|
+ set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/license.txt")
|
|
|
+
|
|
|
+ set(CPACK_NSIS_EXECUTABLES_DIRECTORY .)
|
|
|
+ set(CPACK_NSIS_PACKAGE_NAME "LOVE")
|
|
|
+ set(CPACK_NSIS_DISPLAY_NAME "LOVE ${LOVE_VERSION_STR}")
|
|
|
+ set(CPACK_NSIS_MODIFY_PATH OFF)
|
|
|
+
|
|
|
+ if(LOVE_X64)
|
|
|
+ set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
|
|
|
+ else()
|
|
|
+ set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES")
|
|
|
+ endif()
|
|
|
|
|
|
-# Text files.
|
|
|
-copy_text_file(readme.md readme.txt)
|
|
|
-copy_text_file(license.txt license.txt)
|
|
|
-copy_text_file(changes.txt changes.txt)
|
|
|
-
|
|
|
-install(FILES
|
|
|
- ${CMAKE_CURRENT_BINARY_DIR}/changes.txt
|
|
|
- ${CMAKE_CURRENT_BINARY_DIR}/license.txt
|
|
|
- ${CMAKE_CURRENT_BINARY_DIR}/readme.txt
|
|
|
- DESTINATION .)
|
|
|
-
|
|
|
-# Icons
|
|
|
-install(FILES
|
|
|
- ${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis/love.ico
|
|
|
- ${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis/game.ico
|
|
|
- DESTINATION .)
|
|
|
-
|
|
|
-set(CPACK_PACKAGE_NAME "love")
|
|
|
-set(CPACK_PACKAGE_VENDOR "love2d.org")
|
|
|
-set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "LOVE -- It's awesome")
|
|
|
-set(CPACK_PACKAGE_VERSION "${LOVE_VERSION_STR}")
|
|
|
-set(CPACK_PACKAGE_VERSION_MAJOR "${LOVE_VERSION_MAJOR}")
|
|
|
-set(CPACK_PACKAGE_VERSION_MINOR "${LOVE_VERSION_MINOR}")
|
|
|
-set(CPACK_PACKAGE_VERSION_PATCH "${LOVE_VERSION_REV}")
|
|
|
-set(CPACK_PACKAGE_INSTALL_DIRECTORY "LOVE")
|
|
|
-set(CPACK_PACKAGE_EXECUTABLES "${LOVE_EXE_NAME};LOVE")
|
|
|
-set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/readme.md")
|
|
|
-set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/license.txt")
|
|
|
-
|
|
|
-set(CPACK_NSIS_EXECUTABLES_DIRECTORY .)
|
|
|
-set(CPACK_NSIS_PACKAGE_NAME "LOVE")
|
|
|
-set(CPACK_NSIS_DISPLAY_NAME "LOVE ${LOVE_VERSION_STR}")
|
|
|
-set(CPACK_NSIS_MODIFY_PATH OFF)
|
|
|
-
|
|
|
-if(LOVE_X64)
|
|
|
- set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
|
|
|
-else()
|
|
|
- set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES")
|
|
|
+ set(CPACK_NSIS_MENU_LINKS "http://love2d.org/wiki" "Documentation")
|
|
|
+
|
|
|
+ # Some bug somewhere in NSIS requires "\\\\" somewhere in the path,
|
|
|
+ # according to The Internet. (And sure enough, it does not work
|
|
|
+ # without it).
|
|
|
+ set(NSIS_LEFT_BMP "${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis\\\\left.bmp")
|
|
|
+ set(NSIS_TOP_BMP "${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis\\\\top.bmp")
|
|
|
+ set(NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis\\\\love.ico")
|
|
|
+ set(NSIS_MUI_UNICON "${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis\\\\love.ico")
|
|
|
+
|
|
|
+ set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "
|
|
|
+ !define MUI_WELCOMEPAGE_TITLE \\\"LOVE ${LOVE_VERSION_STR} Setup\\\"
|
|
|
+ !define MUI_WELCOMEFINISHPAGE_BITMAP \\\"${NSIS_LEFT_BMP}\\\"
|
|
|
+ !define MUI_HEADERIMAGE_BITMAP \\\"${NSIS_TOP_BMP}\\\"
|
|
|
+ !define MUI_ICON \\\"${NSIS_MUI_ICON}\\\"
|
|
|
+ !define MUI_UNICON \\\"${NSIS_MUI_UNICON}\\\"
|
|
|
+ ")
|
|
|
+
|
|
|
+ set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "
|
|
|
+ WriteRegStr HKCR \\\".love\\\" \\\"\\\" \\\"LOVE\\\"
|
|
|
+ WriteRegStr HKCR \\\"LOVE\\\" \\\"\\\" \\\"LOVE Game File\\\"
|
|
|
+ WriteRegStr HKCR \\\"LOVE\\\\DefaultIcon\\\" \\\"\\\" \\\"$INSTDIR\\\\game.ico\\\"
|
|
|
+ WriteRegStr HKCR \\\"LOVE\\\\shell\\\" \\\"\\\" \\\"open\\\"
|
|
|
+ WriteRegStr HKCR \\\"LOVE\\\\shell\\\\open\\\" \\\"\\\" \\\"Open in LOVE\\\"
|
|
|
+ WriteRegStr HKCR \\\"LOVE\\\\shell\\\\open\\\\command\\\" \\\"\\\" \\\"$INSTDIR\\\\love.exe $\\\\\\\"%1$\\\\\\\"\\\"
|
|
|
+ System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
|
|
|
+ ")
|
|
|
+
|
|
|
+ set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "
|
|
|
+ DeleteRegKey HKCR \\\"LOVE\\\"
|
|
|
+ DeleteRegKey HKCR \\\".love\\\"
|
|
|
+ System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
|
|
|
+ ")
|
|
|
+
|
|
|
+ include(CPack)
|
|
|
endif()
|
|
|
-
|
|
|
-set(CPACK_NSIS_MENU_LINKS "http://love2d.org/wiki" "Documentation")
|
|
|
-
|
|
|
-# Some bug somewhere in NSIS requires "\\\\" somewhere in the path,
|
|
|
-# according to The Internet. (And sure enough, it does not work
|
|
|
-# without it).
|
|
|
-set(NSIS_LEFT_BMP "${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis\\\\left.bmp")
|
|
|
-set(NSIS_TOP_BMP "${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis\\\\top.bmp")
|
|
|
-set(NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis\\\\love.ico")
|
|
|
-set(NSIS_MUI_UNICON "${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis\\\\love.ico")
|
|
|
-
|
|
|
-set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "
|
|
|
- !define MUI_WELCOMEPAGE_TITLE \\\"LOVE ${LOVE_VERSION_STR} Setup\\\"
|
|
|
- !define MUI_WELCOMEFINISHPAGE_BITMAP \\\"${NSIS_LEFT_BMP}\\\"
|
|
|
- !define MUI_HEADERIMAGE_BITMAP \\\"${NSIS_TOP_BMP}\\\"
|
|
|
- !define MUI_ICON \\\"${NSIS_MUI_ICON}\\\"
|
|
|
- !define MUI_UNICON \\\"${NSIS_MUI_UNICON}\\\"
|
|
|
-")
|
|
|
-
|
|
|
-set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "
|
|
|
- WriteRegStr HKCR \\\".love\\\" \\\"\\\" \\\"LOVE\\\"
|
|
|
- WriteRegStr HKCR \\\"LOVE\\\" \\\"\\\" \\\"LOVE Game File\\\"
|
|
|
- WriteRegStr HKCR \\\"LOVE\\\\DefaultIcon\\\" \\\"\\\" \\\"$INSTDIR\\\\game.ico\\\"
|
|
|
- WriteRegStr HKCR \\\"LOVE\\\\shell\\\" \\\"\\\" \\\"open\\\"
|
|
|
- WriteRegStr HKCR \\\"LOVE\\\\shell\\\\open\\\" \\\"\\\" \\\"Open in LOVE\\\"
|
|
|
- WriteRegStr HKCR \\\"LOVE\\\\shell\\\\open\\\\command\\\" \\\"\\\" \\\"$INSTDIR\\\\love.exe $\\\\\\\"%1$\\\\\\\"\\\"
|
|
|
- System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
|
|
|
-")
|
|
|
-
|
|
|
-set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "
|
|
|
- DeleteRegKey HKCR \\\"LOVE\\\"
|
|
|
- DeleteRegKey HKCR \\\".love\\\"
|
|
|
- System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
|
|
|
-")
|
|
|
-
|
|
|
-include(CPack)
|