Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
58a3f00
#2 updated publish workflow, fixed minor errors in CMake scripts
hatelamers Nov 14, 2024
dd58c6c
Merge pull request #5 from hatelamers/feature/2_workflow_update
hatelamers Nov 14, 2024
1798176
Merge pull request #8 from hatelamers/main
hatelamers Nov 14, 2024
368043a
#6 added support for multi-monitor taskbar
hatelamers Nov 15, 2024
ce19388
Merge pull request #9 from hatelamers/feature/6_multiscreen_support
hatelamers Nov 15, 2024
a4058d4
#3 implemented HiDPI support
hatelamers Nov 16, 2024
946867f
Merge pull request #11 from hatelamers/feature/3-make-the-app-hidpi-a…
hatelamers Nov 16, 2024
14bb8ed
#10 added program argument to hide own taskbar icon
hatelamers Nov 17, 2024
48201da
Merge pull request #12 from hatelamers/feature/10-export-app-entry-point
hatelamers Nov 17, 2024
bb9a483
#13 added support for dark mode
hatelamers Nov 23, 2024
17eb122
Merge pull request #14 from hatelamers/13-implement-full-dark-mode
hatelamers Nov 23, 2024
452aa80
#15 migrated installer to Inno Setup
hatelamers Dec 5, 2024
127663e
#15 fixed sign certificate path escaping in Package.cmake
hatelamers Dec 5, 2024
520c76e
#15 fixed typo in Package.cmake
hatelamers Dec 5, 2024
d85288b
Merge pull request #16 from hatelamers/15-migrate-install-provider-to…
hatelamers Dec 5, 2024
3aa90b1
#17 common funtionality moved to wtlx library
hatelamers Dec 12, 2024
6732ff2
Merge pull request #18 from hatelamers/17-separate-common-sources-int…
hatelamers Dec 12, 2024
ad9d035
#17 optimized project stucture
hatelamers Dec 12, 2024
9752a5b
Merge pull request #19 from hatelamers/feature/project_sturcture_opti…
hatelamers Dec 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions .github/workflows/cmake-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ jobs:
env:
CODESIGN_PW: ${{ secrets.CODESIGN_PW }}
- name: Publish to GitHub
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
with:
files: |
distr/*.exe
Expand All @@ -57,5 +57,4 @@ jobs:
if: always()
continue-on-error: true
run: |
del /q "$env:TEMP\signcert.txt" 2>nul
del /q "$env:TEMP\signcert.pfx" 2>nul
del "$env:TEMP\signcert.*"
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

/build
**/LocalBuild.*
/test/data

# User-specific files
*.rsuser
Expand Down
35 changes: 17 additions & 18 deletions buildenv/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
# cmake --build build\Cmake-Debug-x64 --config Debug
# cmake -Sbuildenv -Bbuild\Cmake-Debug-x86 -DCMAKE_BUILD_TYPE=Debug -T host=x64 -A Win32
# cmake --build build\Cmake-Debug-x86 --config Debug
# cmake -Sbuildenv -Bbuild\Cmake-Release-ARM64 -DCMAKE_BUILD_TYPE=Release -DSIGNER_ISSUER:STRING="<ISSUER_CN>" -T host=x64 -A ARM64
# cmake -Sbuildenv -Bbuild\Cmake-Release-x64 -DCMAKE_BUILD_TYPE=Release -DSIGNER_CERT:STRING=<CERT_PATH> -DSIGNER_PASS:STRING=<CERT_PASSWORD>
# cmake --build build\Cmake-Release-x64 --config Release --target WinPinMenu-package-inst

Expand All @@ -11,10 +12,14 @@ if(${CMAKE_VERSION} VERSION_LESS 3.12)
cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION})
endif()

get_filename_component(WORKSPACE_ROOT ".." ABSOLUTE BASE_DIR "${CMAKE_CURRENT_LIST_DIR}")
set(MAIN_TARGET_SOURCE_DIR "${WORKSPACE_ROOT}/src/app")
set(MAIN_TARGET_RESOURCE_DIR "${MAIN_TARGET_SOURCE_DIR}/res")

include("${CMAKE_CURRENT_LIST_DIR}/LocalBuild.cmake" OPTIONAL)

file(READ "${MAIN_TARGET_SOURCE_DIR}/buildnumber.txt" BUILD_NUMBER)
include("${CMAKE_CURRENT_LIST_DIR}/Product.cmake")
file(READ "${CMAKE_CURRENT_LIST_DIR}/buildnumber.txt" BUILD_NUMBER)
if(NOT ${BUILD_NUMBER})
set(BUILD_NUMBER 1)
endif()
Expand All @@ -35,14 +40,12 @@ set(CPACK_SINGLE_TARGET_SYSTEM ON)
include(${CMAKE_CURRENT_LIST_DIR}/cmake/TargetArch.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/cmake/InstallSetup.cmake)

get_filename_component(WORKSPACE_ROOT ".." ABSOLUTE BASE_DIR "${CMAKE_CURRENT_LIST_DIR}")
set(PRODUCT_LICENSE_FILE "${WORKSPACE_ROOT}/LICENSE")

set(MAIN_TARGET_NAME ${PROJECT_NAME})
set(MAIN_TARGET_SOURCE_DIR "${WORKSPACE_ROOT}/src/app")
set(MAIN_TARGET_RESOURCE_DIR "${MAIN_TARGET_SOURCE_DIR}/res")

configure_file("${MAIN_TARGET_SOURCE_DIR}/productmeta.h.in" "${MAIN_TARGET_SOURCE_DIR}/productmeta.h")
configure_file("${MAIN_TARGET_SOURCE_DIR}/app.manifest.in" "${MAIN_TARGET_RESOURCE_DIR}/app.manifest")

add_custom_target(${MAIN_TARGET_NAME} ALL)

Expand All @@ -53,6 +56,8 @@ add_custom_command(
"${CMAKE_CURRENT_LIST_DIR}/${MAIN_TARGET_NAME}.sln"
-t:restore
-p:RestorePackagesConfig=true
-p:Configuration=$<CONFIG>
-p:Platform=${TARGET_ARCH_ID}
COMMENT "Restoring NuGet packages"
)

Expand All @@ -64,9 +69,9 @@ add_custom_command(
COMMAND ${CMAKE_COMMAND}
-DBINARY_DIR=${CMAKE_BINARY_DIR}
-DSOURCE_DIR=${CMAKE_CURRENT_LIST_DIR}
-DMAIN_TARGET_SOURCE_DIR=${MAIN_TARGET_SOURCE_DIR}
-DTARGET_SOURCE_DIR=${MAIN_TARGET_SOURCE_DIR}
-DBUILD_TYPE=$<CONFIG>
-DMAIN_TARGET_NAME=${MAIN_TARGET_NAME}
-DTARGET_NAME=${MAIN_TARGET_NAME}
-P ${CMAKE_CURRENT_LIST_DIR}/cmake/PostBuild.cmake
COMMENT "Performing post-build tasks ($<CONFIG>)"
)
Expand All @@ -84,18 +89,12 @@ add_custom_command(

add_dependencies(${MAIN_TARGET_NAME} ${MAIN_TARGET_NAME}-restore ${MAIN_TARGET_NAME}-vc)

install(FILES ${PRODUCT_LICENSE_FILE} CONFIGURATIONS Release DESTINATION ${INSTALL_DOCDIR})
install(PROGRAMS "${CMAKE_BINARY_DIR}/../$<CONFIG>-${TARGET_ARCH_ID}/${MAIN_TARGET_NAME}.exe" CONFIGURATIONS Release DESTINATION ${CMAKE_INSTALL_BINDIR})
set(CPACK_INSTALLER_GENERATORS "ZIP" "INNOSETUP")
set(CPACK_INNOSETUP_CUSTOM_INSTALL_INSTRUCTIONS
"bin/${MAIN_TARGET_NAME}.exe" "Source: \\\"bin\\\\${MAIN_TARGET_NAME}.exe\\\"\\; DestDir: \\\"{app}\\\\bin\\\"\\; Flags: restartreplace promptifolder")
set(CPACK_INNOSETUP_MENU_LINKS "bin\\\\${MAIN_TARGET_NAME}.exe" "${PRODUCT_NAME}")

include(${CMAKE_CURRENT_LIST_DIR}/cpack/Package.cmake)

add_custom_command(
TARGET ${MAIN_TARGET_NAME}-package-inst POST_BUILD
COMMAND ${CMAKE_COMMAND}
-DSIGNER_ISSUER=${SIGNER_ISSUER}
-DSIGNER_CERT=${SIGNER_CERT}
-DSIGNER_PASS=${SIGNER_PASS}
-DTARGET="${CPACK_PACKAGE_DIRECTORY}/${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}.exe"
-P ${CMAKE_CURRENT_LIST_DIR}/cmake/SignTool.cmake
COMMENT "Signing ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}"
)
install(FILES ${PRODUCT_LICENSE_FILE} CONFIGURATIONS Release DESTINATION ${INSTALL_DOCDIR})
install(PROGRAMS "${CMAKE_BINARY_DIR}/../$<CONFIG>-${TARGET_ARCH_ID}/${MAIN_TARGET_NAME}.exe" CONFIGURATIONS Release DESTINATION ${CMAKE_INSTALL_BINDIR})
9 changes: 5 additions & 4 deletions buildenv/Product.cmake
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
set(PRODUCT_VERSION_MAJOR 0)
set(PRODUCT_VERSION_MINOR 1)
set(PRODUCT_VERSION_PATCH 0)
set(PRODUCT_VERSION_PATCH 1)
set(PRODUCT_NAME WinPinMenu)
set(PRODUCT_VERSION ${PRODUCT_VERSION_MAJOR}.${PRODUCT_VERSION_MINOR}.${PRODUCT_VERSION_PATCH}.${BUILD_NUMBER})
set(PRODUCT_TITLE "Pinnable Taskbar Menu")
set(PRODUCT_VERSION ${PRODUCT_VERSION_MAJOR}.${PRODUCT_VERSION_MINOR}.${PRODUCT_VERSION_PATCH})
set(PRODUCT_VENDOR "diVISION")
set(PRODUCT_DESCRIPTON "diVISION Pinnable Taskbar Menu For Windows")
set(PRODUCT_MAINTANER "dimamizou@users.sf.net")
set(PRODUCT_MAINTANER "dimamizou@jasics.net")
set(PRODUCT_HOMEPAGE_URL "https://github.com/hatelamers/WinPinMenu")
set(PROJECT_LICENSE "GNU/GPL")
set(PROJECT_LICENSE_URL "https://www.gnu.org/licenses/gpl-3.0.en.html")
set(PROJECT_COPYRIGHT "© 2024, some rights reserved")
string(TOLOWER "${PROJECT_NAME}" PRODUCT_IDENTIFIER)
string(TOLOWER "${PRODUCT_NAME}" PRODUCT_IDENTIFIER)
set(PACKAGE_IDENTIFIER "net.jasics.${PRODUCT_IDENTIFIER}")
17 changes: 17 additions & 0 deletions buildenv/WinPinMenu.sln
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
VisualStudioVersion = 17.8.34931.61
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinPinMenu", "..\src\app\WinPinMenu.vcxproj", "{C12D10FE-D63C-4834-9FF5-F26DD4BEA551}"
ProjectSection(ProjectDependencies) = postProject
{7D0481BF-835E-4FAA-820C-0EF96D007C7A} = {7D0481BF-835E-4FAA-820C-0EF96D007C7A}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CMake", "CMake", "{4A16127A-5EE7-4701-99FE-D36C5F8C3866}"
ProjectSection(SolutionItems) = preProject
Expand All @@ -16,6 +19,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
..\README.md = ..\README.md
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wtlx", "..\src\wtlx\wtlx.vcxproj", "{7D0481BF-835E-4FAA-820C-0EF96D007C7A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM64 = Debug|ARM64
Expand All @@ -38,6 +43,18 @@ Global
{C12D10FE-D63C-4834-9FF5-F26DD4BEA551}.Release|x64.Build.0 = Release|x64
{C12D10FE-D63C-4834-9FF5-F26DD4BEA551}.Release|x86.ActiveCfg = Release|Win32
{C12D10FE-D63C-4834-9FF5-F26DD4BEA551}.Release|x86.Build.0 = Release|Win32
{7D0481BF-835E-4FAA-820C-0EF96D007C7A}.Debug|ARM64.ActiveCfg = Debug|x64
{7D0481BF-835E-4FAA-820C-0EF96D007C7A}.Debug|ARM64.Build.0 = Debug|x64
{7D0481BF-835E-4FAA-820C-0EF96D007C7A}.Debug|x64.ActiveCfg = Debug|x64
{7D0481BF-835E-4FAA-820C-0EF96D007C7A}.Debug|x64.Build.0 = Debug|x64
{7D0481BF-835E-4FAA-820C-0EF96D007C7A}.Debug|x86.ActiveCfg = Debug|Win32
{7D0481BF-835E-4FAA-820C-0EF96D007C7A}.Debug|x86.Build.0 = Debug|Win32
{7D0481BF-835E-4FAA-820C-0EF96D007C7A}.Release|ARM64.ActiveCfg = Release|x64
{7D0481BF-835E-4FAA-820C-0EF96D007C7A}.Release|ARM64.Build.0 = Release|x64
{7D0481BF-835E-4FAA-820C-0EF96D007C7A}.Release|x64.ActiveCfg = Release|x64
{7D0481BF-835E-4FAA-820C-0EF96D007C7A}.Release|x64.Build.0 = Release|x64
{7D0481BF-835E-4FAA-820C-0EF96D007C7A}.Release|x86.ActiveCfg = Release|Win32
{7D0481BF-835E-4FAA-820C-0EF96D007C7A}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
1 change: 0 additions & 1 deletion buildenv/buildnumber.txt

This file was deleted.

16 changes: 8 additions & 8 deletions buildenv/cmake/PostBuild.cmake
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
if(NOT ${BUILD_TYPE} MATCHES Debug)
file(READ "${SOURCE_DIR}/buildnumber.txt" BUILD_NUMBER)
include("${SOURCE_DIR}/Product.cmake")
file(READ "${TARGET_SOURCE_DIR}/buildnumber.txt" BUILD_NUMBER)
if(NOT ${BUILD_NUMBER})
set(BUILD_NUMBER 1)
endif()
include("${SOURCE_DIR}/Product.cmake")
file(REMOVE "${MAIN_TARGET_SOURCE_DIR}/productmeta.h")
configure_file("${MAIN_TARGET_SOURCE_DIR}/productmeta.h.in" "${MAIN_TARGET_SOURCE_DIR}/productmeta.h")

math(EXPR BUILD_NUMBER "${BUILD_NUMBER} + 1")
if(${CMAKE_VERSION} VERSION_LESS 3.18)
file(WRITE "${SOURCE_DIR}/buildnumber.txt" "${BUILD_NUMBER}")
file(WRITE "${TARGET_SOURCE_DIR}/buildnumber.txt" "${BUILD_NUMBER}")
else()
file(CONFIGURE OUTPUT "${SOURCE_DIR}/buildnumber.txt" CONTENT "${BUILD_NUMBER}")
file(CONFIGURE OUTPUT "${TARGET_SOURCE_DIR}/buildnumber.txt" CONTENT "${BUILD_NUMBER}")
endif()
file(TOUCH_NOCREATE "${MAIN_TARGET_SOURCE_DIR}/${MAIN_TARGET_NAME}.rc")
file(REMOVE "${TARGET_SOURCE_DIR}/productmeta.h")
configure_file("${TARGET_SOURCE_DIR}/productmeta.h.in" "${TARGET_SOURCE_DIR}/productmeta.h")
file(TOUCH_NOCREATE "${TARGET_SOURCE_DIR}/${TARGET_NAME}.rc")

message(STATUS "Build number set to ${BUILD_NUMBER} in ${SOURCE_DIR}/buildnumber.txt")
message(STATUS "Build number set to ${BUILD_NUMBER} in ${TARGET_SOURCE_DIR}/buildnumber.txt")
endif()
141 changes: 112 additions & 29 deletions buildenv/cpack/Package.cmake
Original file line number Diff line number Diff line change
@@ -1,46 +1,129 @@
if(NOT PRODUCT_NAME)
set(PRODUCT_NAME "${CMAKE_PROJECT_NAME}")
endif()
if(NOT PRODUCT_TITLE)
set(PRODUCT_TITLE "${CMAKE_PROJECT_NAME}")
endif()
if(NOT MAIN_TARGET_NAME)
set(MAIN_TARGET_NAME "${CMAKE_PROJECT_NAME}")
endif()
if(NOT TARGET_ARCH_ID)
set(TARGET_ARCH_ID "${CMAKE_SYSTEM_PROCESSOR}")
endif()

set(CPACK_PACKAGE_VENDOR "${PRODUCT_VENDOR}")
set(CPACK_PACKAGE_CONTACT ${PRODUCT_MAINTANER})
set(CPACK_PACKAGE_NAME "${PRODUCT_NAME}")
if(DEFINED CPACK_SINGLE_TARGET_SYSTEM)
set(CPACK_SYSTEM_NAME "${TARGET_ARCH_ID}")
else()
set(CPACK_SYSTEM_NAME "${CMAKE_SYSTEM_NAME}-${TARGET_ARCH_ID}")
endif()
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${PRODUCT_NAME}-${PROJECT_VERSION}")
set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${PRODUCT_NAME}-${PROJECT_VERSION}")
set(CPACK_PACKAGE_EXECUTABLES ${MAIN_TARGET_NAME};${PRODUCT_NAME})
set(CPACK_PACKAGE_DIRECTORY "${WORKSPACE_ROOT}/distr")

file(TO_NATIVE_PATH ${PRODUCT_LICENSE_FILE} CPACK_RESOURCE_FILE_LICENSE)
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${PRODUCT_NAME}-${PRODUCT_VERSION}")
set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${PRODUCT_NAME}-${PRODUCT_VERSION}")
set(CPACK_PACKAGE_EXECUTABLES ${MAIN_TARGET_NAME};${PRODUCT_TITLE})
if(WORKSPACE_ROOT)
set(CPACK_PACKAGE_DIRECTORY "${WORKSPACE_ROOT}/distr")
endif()
set(CPACK_PACKAGE_CHECKSUM "SHA256")
set(CPACK_SOURCE_IGNORE_FILES "/thirdparty/[^/]+/(src|stamp|stage)/;/build/;/CVS/;/\\\\.svn/;/\\\\.bzr/;/\\\\.hg/;/\\\\.git/;\\\\.swp\$;\\\\.#;/#")

if(PRODUCT_LICENSE_FILE)
file(TO_NATIVE_PATH ${PRODUCT_LICENSE_FILE} CPACK_RESOURCE_FILE_LICENSE)
endif()

if(${CMAKE_SYSTEM_NAME} MATCHES Windows)
STRING(REGEX REPLACE "\\\\" "\\\\\\\\" CPACK_RESOURCE_FILE_LICENSE "${CPACK_RESOURCE_FILE_LICENSE}")
file(TO_NATIVE_PATH "${MAIN_TARGET_RESOURCE_DIR}/app.ico" CPACK_PACKAGE_ICON)
STRING(REGEX REPLACE "\\\\" "\\\\\\\\" CPACK_PACKAGE_ICON "${CPACK_PACKAGE_ICON}")
set(CPACK_NSIS_MUI_ICON "${CPACK_PACKAGE_ICON}")
#set(CPACK_NSIS_MUI_UNIICON "${CPACK_PACKAGE_ICON}")
set(CPACK_NSIS_DISPLAY_NAME "${PRODUCT_NAME} ${PROJECT_VERSION}")
set(CPACK_INSTALLER_GENERATOR_ARG "-G" "ZIP\\;NSIS")
if(PRODUCT_LICENSE_FILE)
STRING(REGEX REPLACE "\\\\" "\\\\\\\\" CPACK_RESOURCE_FILE_LICENSE "${CPACK_RESOURCE_FILE_LICENSE}")
endif()
if(NOT CPACK_PACKAGE_ICON)
file(TO_NATIVE_PATH "${MAIN_TARGET_RESOURCE_DIR}/app.ico" CPACK_PACKAGE_ICON)
STRING(REGEX REPLACE "\\\\" "\\\\\\\\" CPACK_PACKAGE_ICON "${CPACK_PACKAGE_ICON}")
endif()

if(NOT CPACK_INSTALLER_GENERATORS)
set(CPACK_INSTALLER_GENERATORS "ZIP" "NSIS")
endif()

if("NSIS" IN_LIST CPACK_INSTALLER_GENERATORS)
message(STATUS "Configuring NSIS")
set(CPACK_NSIS_MUI_ICON "${CPACK_PACKAGE_ICON}")
#set(CPACK_NSIS_MUI_UNIICON "${CPACK_PACKAGE_ICON}")
set(CPACK_NSIS_DISPLAY_NAME "${PRODUCT_NAME} ${PRODUCT_VERSION}")

else("INNOSETUP" IN_LIST CPACK_INSTALLER_GENERATORS)
message(STATUS "Configuring INNOSETUP")
find_program(ISCC_COMMAND iscc HINTS $ENV{INNOSETUP_HOME})
if(ISCC_COMMAND)
set(CPACK_INNOSETUP_EXECUTABLE "${ISCC_COMMAND}")
endif()
string(TOLOWER ${TARGET_ARCH_ID} CPACK_INNOSETUP_ARCHITECTURE)
set(CPACK_INNOSETUP_ICON_FILE "${CPACK_PACKAGE_ICON}")
set(CPACK_INNOSETUP_SETUP_WizardSmallImageFile "compiler:WizClassicSmallImage.bmp")
set(CPACK_INNOSETUP_PROGRAM_MENU_FOLDER "${PRODUCT_TITLE}")
set(CPACK_INNOSETUP_DEFINE_MAIN_TARGET ${MAIN_TARGET_NAME}.exe)
set(CPACK_INNOSETUP_DEFINE_PRODUCT_NAME ${PRODUCT_NAME})
set(CPACK_INNOSETUP_DEFINE_PRODUCT_TITLE ${PRODUCT_TITLE})
set(CPACK_INNOSETUP_DEFINE_PRODUCT_VENDOR ${PRODUCT_VENDOR})
set(CPACK_INNOSETUP_SETUP_AppName ${PRODUCT_TITLE})
set(CPACK_INNOSETUP_SETUP_AppVerName "${PRODUCT_TITLE} ${PRODUCT_VERSION}")
set(CPACK_INNOSETUP_SETUP_UninstallDisplayName ${PRODUCT_TITLE})
set(CPACK_INNOSETUP_SETUP_UninstallDisplayIcon "{app}\\\\bin\\\\${MAIN_TARGET_NAME}.exe")
set(CPACK_INNOSETUP_SETUP_VersionInfoVersion "${PRODUCT_VERSION}.${BUILD_NUMBER}")
set(CPACK_INNOSETUP_SETUP_VersionInfoTextVersion "${PRODUCT_VERSION}")
set(CPACK_INNOSETUP_SETUP_VersionInfoCompany "${PRODUCT_VENDOR}")
set(CPACK_INNOSETUP_SETUP_VersionInfoCopyright "${PROJECT_COPYRIGHT}")

find_program(SIGNTOOL_COMMAND signtool)
if(SIGNTOOL_COMMAND)
if(SIGNER_ISSUER)
set(SIGNTOOL_OBJECT_ARG "/i $q${SIGNER_ISSUER}$q")
elseif(SIGNER_CERT)
STRING(REGEX REPLACE "\\\\" "\\\\\\\\" SIGNER_CERT_INNO "${SIGNER_CERT}")
set(SIGNTOOL_OBJECT_ARG "/f $q${SIGNER_CERT_INNO}$q")
endif()
if(SIGNER_PASS)
set(SIGNTOOL_PASS_ARG "/p $q${SIGNER_PASS}$q")
endif()
if(SIGNTOOL_OBJECT_ARG)
set(CPACK_INNOSETUP_EXECUTABLE_ARGUMENTS
"\\\"/Sscripted=$q${SIGNTOOL_COMMAND}$q sign /tr http://timestamp.digicert.com /td SHA256 /fd SHA256 /v ${SIGNTOOL_OBJECT_ARG} ${SIGNTOOL_PASS_ARG} $f\\\"")
set(CPACK_INNOSETUP_SETUP_SignTool "scripted")
set(CPACK_INNOSETUP_SETUP_SignedUninstaller "yes")
endif()
endif()
endif()

elseif(${CMAKE_SYSTEM_NAME} MATCHES Darwin)
file(TO_NATIVE_PATH "${MAIN_TARGET_RESOURCE_DIR}/app.icns" CPACK_PACKAGE_ICON)
set(CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE "ON")
set(CPACK_INSTALLER_GENERATOR_ARG "-G" "ZIP\\\;DragNDrop")
if(NOT CPACK_PACKAGE_ICON)
file(TO_NATIVE_PATH "${MAIN_TARGET_RESOURCE_DIR}/app.icns" CPACK_PACKAGE_ICON)
endif()
if(PRODUCT_LICENSE_FILE)
set(CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE "ON")
endif()
if(NOT CPACK_INSTALLER_GENERATORS)
set(CPACK_INSTALLER_GENERATORS "ZIP" "DragNDrop")
endif()

elseif(${CMAKE_SYSTEM_NAME} MATCHES Linux)
set(CPACK_INSTALLER_GENERATORS "TGZ")
find_program(rpmbuild_Found rpmbuild)
if (rpmbuild_Found)
list(APPEND CPACK_INSTALLER_GENERATORS "RPM")
set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_BINARY_DIR}/postinst")
endif()
find_program(dpkg_Found dpkg)
if (dpkg_Found)
list(APPEND CPACK_INSTALLER_GENERATORS "DEB")
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_BINARY_DIR}/postinst")
endif()
string(JOIN "\\\\;" CPACK_INSTALLER_GENERATOR_LIST ${CPACK_INSTALLER_GENERATORS})
set(CPACK_INSTALLER_GENERATOR_ARG "-G" "${CPACK_INSTALLER_GENERATOR_LIST}")
if(NOT CPACK_INSTALLER_GENERATORS)
set(CPACK_INSTALLER_GENERATORS "TGZ")
find_program(rpmbuild_Found rpmbuild)
if (rpmbuild_Found)
list(APPEND CPACK_INSTALLER_GENERATORS "RPM")
set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_BINARY_DIR}/postinst")
endif()
find_program(dpkg_Found dpkg)
if (dpkg_Found)
list(APPEND CPACK_INSTALLER_GENERATORS "DEB")
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_BINARY_DIR}/postinst")
endif()
endif()
endif()

string(JOIN "\\\\;" CPACK_INSTALLER_GENERATOR_LIST ${CPACK_INSTALLER_GENERATORS})
set(CPACK_INSTALLER_GENERATOR_ARG "-G" ${CPACK_INSTALLER_GENERATOR_LIST})

include(CPack)

add_custom_target(${MAIN_TARGET_NAME}-package-zip
Expand Down
10 changes: 4 additions & 6 deletions src/app/AboutDlg.cpp
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
// aboutdlg.cpp : implementation of the CAboutDlg class
//
/////////////////////////////////////////////////////////////////////////////

#include "stdafx.h"

#include "resource.h"
#include "productmeta.h"

#include "aboutdlg.h"

LRESULT CAboutDlg::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
ATLTRACE(_T(__FUNCTION__) _T("\n"));

DoDataExchange(FALSE);
//m_lnkLicense.SetHyperLinkExtendedStyle(HLINK_COMMANDBUTTON, HLINK_COMMANDBUTTON);
if (m_fvi.Open())
{
m_fvi.SetInfoDlgItemText(m_hWnd, IDC_TXT_PRODUCTNAME, SFI_PRODUCTNAME);
Expand All @@ -21,10 +22,6 @@ LRESULT CAboutDlg::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lPara
m_fvi.SetInfoDlgItemText(m_hWnd, IDC_TXT_FILEVERSION, SFI_FILEVERSION);
m_fvi.SetInfoDlgItemText(m_hWnd, IDC_TXT_COMPANYNAME, SFI_COMPANYNAME);

//LPTSTR lpValue(NULL);
//UINT uLen(0);
//if (m_fvi.GetStringFileInfo(SFI_LEGALTRADEMARKS, lpValue, &uLen))
// m_lnkLicense.SetToolTipText(lpValue);
}
m_lnkLicense.SetHyperLink(PRODUCT_LICENSE_URL);

Expand All @@ -33,6 +30,7 @@ LRESULT CAboutDlg::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lPara
#else
m_lnkRelNotes.ShowWindow(SW_HIDE);
#endif

return TRUE;
}

Expand Down
Loading