mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2023-10-10 13:36:59 +02:00
feat(win): Add binary meta (#932)
This commit is contained in:
parent
8824e69986
commit
94c23653de
@ -296,16 +296,6 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Windows specific
|
|
||||||
if(WIN32)
|
|
||||||
# Path to .rc icon file for add_executable() calls
|
|
||||||
SET ( WIN_RC_ICON_FILE ${CMAKE_SOURCE_DIR}/cmake/nsis/icon.rc)
|
|
||||||
# Force gui app
|
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -v")
|
|
||||||
|
|
||||||
# Use GNU gold linker if available
|
# Use GNU gold linker if available
|
||||||
if (NOT WIN32)
|
if (NOT WIN32)
|
||||||
include (${CMAKE_CURRENT_SOURCE_DIR}/cmake/LDGold.cmake)
|
include (${CMAKE_CURRENT_SOURCE_DIR}/cmake/LDGold.cmake)
|
||||||
|
@ -1 +0,0 @@
|
|||||||
IDI_ICON1 ICON DISCARDABLE "installer.ico"
|
|
34
cmake/win/win.rc.in
Normal file
34
cmake/win/win.rc.in
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
IDI_ICON1 ICON DISCARDABLE "${WIN_RC_ICON_PATH}"
|
||||||
|
1 VERSIONINFO
|
||||||
|
FILEVERSION ${HYPERION_VERSION_MAJOR},${HYPERION_VERSION_MINOR},${HYPERION_VERSION_PATCH},0
|
||||||
|
PRODUCTVERSION ${HYPERION_VERSION_MAJOR},${HYPERION_VERSION_MINOR},${HYPERION_VERSION_PATCH},0
|
||||||
|
FILEFLAGSMASK 0x17L
|
||||||
|
#ifdef _DEBUG
|
||||||
|
FILEFLAGS 0x1L
|
||||||
|
#else
|
||||||
|
FILEFLAGS 0x0L
|
||||||
|
#endif
|
||||||
|
FILEOS 0x4L
|
||||||
|
FILETYPE 0x1L
|
||||||
|
FILESUBTYPE 0x0L
|
||||||
|
BEGIN
|
||||||
|
BLOCK "StringFileInfo"
|
||||||
|
BEGIN
|
||||||
|
BLOCK "040904b0"
|
||||||
|
BEGIN
|
||||||
|
VALUE "CompanyName", "hyperion-project"
|
||||||
|
VALUE "Comments", "www.hyperion-project.org"
|
||||||
|
VALUE "FileDescription", "Hyperion Ambient Lighting"
|
||||||
|
VALUE "FileVersion", "${HYPERION_VERSION}"
|
||||||
|
VALUE "InternalName", "Hyperion"
|
||||||
|
VALUE "LegalCopyright", "MIT"
|
||||||
|
VALUE "OriginalFilename", "${BINARY_NAME}"
|
||||||
|
VALUE "ProductName", "Hyperion Ambient Lighting"
|
||||||
|
VALUE "ProductVersion", "${HYPERION_VERSION}"
|
||||||
|
END
|
||||||
|
END
|
||||||
|
BLOCK "VarFileInfo"
|
||||||
|
BEGIN
|
||||||
|
VALUE "Translation", 0x409, 1200
|
||||||
|
END
|
||||||
|
END
|
15
cmake/win/win_rc.cmake
Normal file
15
cmake/win/win_rc.cmake
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# process a .rc file for windows
|
||||||
|
# Provides (BINARY_NAME)_WIN_RC_PATH with path to generated file
|
||||||
|
function(generate_win_rc_file BINARY_NAME)
|
||||||
|
# target path to store generated files
|
||||||
|
set(TARGET_PATH ${CMAKE_BINARY_DIR}/win_rc_file/${BINARY_NAME})
|
||||||
|
# assets
|
||||||
|
string(REPLACE "/" "\\\\" WIN_RC_ICON_PATH ${CMAKE_SOURCE_DIR}/cmake/nsis/installer.ico)
|
||||||
|
# configure the rc file
|
||||||
|
configure_file(
|
||||||
|
${CMAKE_SOURCE_DIR}/cmake/win/win.rc.in
|
||||||
|
${TARGET_PATH}/win.rc
|
||||||
|
)
|
||||||
|
# provide var for parent scope
|
||||||
|
set(${BINARY_NAME}_WIN_RC_PATH ${TARGET_PATH}/win.rc PARENT_SCOPE)
|
||||||
|
endfunction()
|
@ -17,10 +17,16 @@ set(Hyperion_QT_SOURCES
|
|||||||
hyperion-qt.cpp
|
hyperion-qt.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# generate windows .rc file for this binary
|
||||||
|
if (WIN32)
|
||||||
|
include(${CMAKE_SOURCE_DIR}/cmake/win/win_rc.cmake)
|
||||||
|
generate_win_rc_file(${PROJECT_NAME})
|
||||||
|
endif()
|
||||||
|
|
||||||
add_executable(${PROJECT_NAME}
|
add_executable(${PROJECT_NAME}
|
||||||
${Hyperion_QT_HEADERS}
|
${Hyperion_QT_HEADERS}
|
||||||
${Hyperion_QT_SOURCES}
|
${Hyperion_QT_SOURCES}
|
||||||
${WIN_RC_ICON_FILE}
|
${${PROJECT_NAME}_WIN_RC_PATH}
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(${PROJECT_NAME}
|
target_link_libraries(${PROJECT_NAME}
|
||||||
|
@ -17,10 +17,16 @@ set(hyperion-remote_SOURCES
|
|||||||
hyperion-remote.cpp
|
hyperion-remote.cpp
|
||||||
JsonConnection.cpp)
|
JsonConnection.cpp)
|
||||||
|
|
||||||
|
# generate windows .rc file for this binary
|
||||||
|
if (WIN32)
|
||||||
|
include(${CMAKE_SOURCE_DIR}/cmake/win/win_rc.cmake)
|
||||||
|
generate_win_rc_file(${PROJECT_NAME})
|
||||||
|
endif()
|
||||||
|
|
||||||
add_executable(${PROJECT_NAME}
|
add_executable(${PROJECT_NAME}
|
||||||
${hyperion-remote_HEADERS}
|
${hyperion-remote_HEADERS}
|
||||||
${hyperion-remote_SOURCES}
|
${hyperion-remote_SOURCES}
|
||||||
${WIN_RC_ICON_FILE}
|
${${PROJECT_NAME}_WIN_RC_PATH}
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(${PROJECT_NAME}
|
target_link_libraries(${PROJECT_NAME}
|
||||||
|
@ -8,6 +8,12 @@ endif()
|
|||||||
|
|
||||||
find_package(Qt5Widgets REQUIRED)
|
find_package(Qt5Widgets REQUIRED)
|
||||||
|
|
||||||
|
# generate windows .rc file for this binary
|
||||||
|
if (WIN32)
|
||||||
|
include(${CMAKE_SOURCE_DIR}/cmake/win/win_rc.cmake)
|
||||||
|
generate_win_rc_file(hyperiond)
|
||||||
|
endif()
|
||||||
|
|
||||||
add_executable(hyperiond
|
add_executable(hyperiond
|
||||||
console.h
|
console.h
|
||||||
hyperiond.h
|
hyperiond.h
|
||||||
@ -15,9 +21,14 @@ add_executable(hyperiond
|
|||||||
hyperiond.cpp
|
hyperiond.cpp
|
||||||
systray.cpp
|
systray.cpp
|
||||||
main.cpp
|
main.cpp
|
||||||
${WIN_RC_ICON_FILE}
|
${hyperiond_WIN_RC_PATH}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# promote hyperiond as GUI app
|
||||||
|
if (WIN32)
|
||||||
|
target_link_options(hyperiond PUBLIC /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup)
|
||||||
|
endif()
|
||||||
|
|
||||||
target_link_libraries(hyperiond
|
target_link_libraries(hyperiond
|
||||||
commandline
|
commandline
|
||||||
hyperion
|
hyperion
|
||||||
|
Loading…
x
Reference in New Issue
Block a user