Define melonDS version in CMake
Prevents having to update multiple files (melon.rc, melon.plist, version.h) when a new version is released.
This commit is contained in:
parent
cd6859ef6f
commit
e8f06b8ac1
|
@ -6,6 +6,7 @@ obj
|
||||||
*.o
|
*.o
|
||||||
melon_grc.c
|
melon_grc.c
|
||||||
melon_grc.h
|
melon_grc.h
|
||||||
|
melon.rc
|
||||||
cmake-build
|
cmake-build
|
||||||
cmake-build-debug
|
cmake-build-debug
|
||||||
.idea
|
.idea
|
||||||
|
|
|
@ -16,6 +16,21 @@ set(CMAKE_C_STANDARD 11)
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
||||||
|
|
||||||
|
set(MELONDS_VERSION "0.9.1")
|
||||||
|
add_compile_definitions(MELONDS_VERSION="${MELONDS_VERSION}")
|
||||||
|
string(REPLACE "." ";" VERSION_LIST ${MELONDS_VERSION})
|
||||||
|
# For the melon.rc file used on Windows
|
||||||
|
list(GET VERSION_LIST 0 MELONDS_VERSION_MAJOR)
|
||||||
|
list(GET VERSION_LIST 1 MELONDS_VERSION_MINOR)
|
||||||
|
# Check if melonDS version is three digits or two digits
|
||||||
|
list(LENGTH VERSION_LIST MELONDS_VER_LEN)
|
||||||
|
if (${MELONDS_VER_LEN} GREATER 2)
|
||||||
|
list(GET VERSION_LIST 2 MELONDS_VERSION_PATCH)
|
||||||
|
else()
|
||||||
|
set(MELONDS_VERSION_PATCH 0)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
check_library_exists(m pow "" LIBM)
|
check_library_exists(m pow "" LIBM)
|
||||||
if(LIBM)
|
if(LIBM)
|
||||||
link_libraries(m)
|
link_libraries(m)
|
||||||
|
|
|
@ -13,9 +13,9 @@
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>0.9.1</string>
|
<string>${MELONDS_VERSION}</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>0.9.1</string>
|
<string>${MELONDS_VERSION}</string>
|
||||||
<key>NSHumanReadableCopyright</key>
|
<key>NSHumanReadableCopyright</key>
|
||||||
<string>Licensed under GPLv3</string>
|
<string>Licensed under GPLv3</string>
|
||||||
<key>NSHighResolutionCapable</key>
|
<key>NSHighResolutionCapable</key>
|
|
@ -6,8 +6,8 @@
|
||||||
|
|
||||||
//include version information in .exe, modify these values to match your needs
|
//include version information in .exe, modify these values to match your needs
|
||||||
1 VERSIONINFO
|
1 VERSIONINFO
|
||||||
FILEVERSION 0,9,1,0
|
FILEVERSION ${MELONDS_VERSION_MAJOR},${MELONDS_VERSION_MINOR},${MELONDS_VERSION_PATCH},0
|
||||||
PRODUCTVERSION 0,9,1,0
|
PRODUCTVERSION ${MELONDS_VERSION_MAJOR},${MELONDS_VERSION_MINOR},${MELONDS_VERSION_PATCH},0
|
||||||
FILETYPE VFT_APP
|
FILETYPE VFT_APP
|
||||||
{
|
{
|
||||||
BLOCK "StringFileInfo"
|
BLOCK "StringFileInfo"
|
||||||
|
@ -15,14 +15,14 @@ FILETYPE VFT_APP
|
||||||
BLOCK "040904E4"
|
BLOCK "040904E4"
|
||||||
{
|
{
|
||||||
VALUE "CompanyName", "Melon Factory of Kuribo64"
|
VALUE "CompanyName", "Melon Factory of Kuribo64"
|
||||||
VALUE "FileVersion", "0.9.1"
|
VALUE "FileVersion", "${MELONDS_VERSION}"
|
||||||
VALUE "FileDescription", "DS emulator, sorta. also 1st quality melon."
|
VALUE "FileDescription", "DS emulator, sorta. also 1st quality melon."
|
||||||
VALUE "InternalName", "SDnolem"
|
VALUE "InternalName", "SDnolem"
|
||||||
VALUE "LegalCopyright", "2016-2020 Arisotura & co."
|
VALUE "LegalCopyright", "2016-2020 Arisotura & co."
|
||||||
VALUE "LegalTrademarks", ""
|
VALUE "LegalTrademarks", ""
|
||||||
VALUE "OriginalFilename", "zafkflzdasd.exe"
|
VALUE "OriginalFilename", "zafkflzdasd.exe"
|
||||||
VALUE "ProductName", "melonDS"
|
VALUE "ProductName", "melonDS"
|
||||||
VALUE "ProductVersion", "0.9.1"
|
VALUE "ProductVersion", "${MELONDS_VERSION}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
|
@ -94,6 +94,7 @@ if (UNIX)
|
||||||
target_link_libraries(melonDS dl Qt5::Core Qt5::Gui Qt5::Widgets)
|
target_link_libraries(melonDS dl Qt5::Core Qt5::Gui Qt5::Widgets)
|
||||||
elseif (WIN32)
|
elseif (WIN32)
|
||||||
option(PORTABLE "Make a portable build that looks for its configuration in the current directory" ON)
|
option(PORTABLE "Make a portable build that looks for its configuration in the current directory" ON)
|
||||||
|
configure_file("${CMAKE_SOURCE_DIR}/melon.rc.in" "${CMAKE_SOURCE_DIR}/melon.rc")
|
||||||
target_sources(melonDS PUBLIC "${CMAKE_SOURCE_DIR}/melon.rc")
|
target_sources(melonDS PUBLIC "${CMAKE_SOURCE_DIR}/melon.rc")
|
||||||
|
|
||||||
target_link_libraries(melonDS comctl32 d2d1 dwrite uxtheme ws2_32 iphlpapi gdi32)
|
target_link_libraries(melonDS comctl32 d2d1 dwrite uxtheme ws2_32 iphlpapi gdi32)
|
||||||
|
@ -111,13 +112,13 @@ endif()
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
set_target_properties(melonDS PROPERTIES
|
set_target_properties(melonDS PROPERTIES
|
||||||
MACOSX_BUNDLE true
|
MACOSX_BUNDLE true
|
||||||
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/melonDS.plist
|
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/melon.plist.in
|
||||||
OUTPUT_NAME melonDS
|
OUTPUT_NAME melonDS
|
||||||
)
|
)
|
||||||
|
|
||||||
# Copy icon into the bundle
|
# Copy icon into the bundle
|
||||||
target_sources(melonDS PRIVATE "${CMAKE_SOURCE_DIR}/melonDS.icns")
|
target_sources(melonDS PRIVATE "${CMAKE_SOURCE_DIR}/melon.icns")
|
||||||
set_source_files_properties("${CMAKE_SOURCE_DIR}/melonDS.icns" PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
|
set_source_files_properties("${CMAKE_SOURCE_DIR}/melon.icns" PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
@ -19,8 +19,6 @@
|
||||||
#ifndef VERSION_H
|
#ifndef VERSION_H
|
||||||
#define VERSION_H
|
#define VERSION_H
|
||||||
|
|
||||||
#define MELONDS_VERSION "0.9.1"
|
|
||||||
|
|
||||||
#define MELONDS_URL "http://melonds.kuribo64.net/"
|
#define MELONDS_URL "http://melonds.kuribo64.net/"
|
||||||
|
|
||||||
#endif // VERSION_H
|
#endif // VERSION_H
|
||||||
|
|
Loading…
Reference in New Issue