generate windows rc for each executable target so we can set the executable name right for each one

This commit is contained in:
Jeff 2022-05-27 10:14:31 -04:00
parent f05c2ebc71
commit e480e36f3d
No known key found for this signature in database
GPG Key ID: 025C02EE3A092F2D
4 changed files with 24 additions and 43 deletions

View File

@ -12,39 +12,34 @@ if(EXISTS ${GIT_INDEX_FILE} AND ( GIT_FOUND OR Git_FOUND) )
"-D" "DEST=${CMAKE_CURRENT_BINARY_DIR}/constants/version.cpp" "-D" "DEST=${CMAKE_CURRENT_BINARY_DIR}/constants/version.cpp"
"-P" "${CMAKE_CURRENT_LIST_DIR}/GenVersion.cmake" "-P" "${CMAKE_CURRENT_LIST_DIR}/GenVersion.cmake"
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/constants/version.cpp.in" DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/constants/version.cpp.in"
"${GIT_INDEX_FILE}") "${GIT_INDEX_FILE}")
if(WIN32) if(WIN32)
add_custom_command( foreach(exe IN ITEMS lokinet lokinet-vpn lokinet-bootstrap)
OUTPUT "${CMAKE_BINARY_DIR}/version.rc" set(lokinet_EXE_NAME "${exe}.exe")
COMMAND "${CMAKE_COMMAND}" add_custom_command(
"-D" "GIT=${GIT_EXECUTABLE}" OUTPUT "${CMAKE_BINARY_DIR}/${exe}.rc"
"-D" "SRC=${CMAKE_CURRENT_SOURCE_DIR}/constants/version.cpp.in" COMMAND "${CMAKE_COMMAND}"
"-D" "DEST=${CMAKE_BINARY_DIR}/version.rc" "-D" "GIT=${GIT_EXECUTABLE}"
"-P" "${CMAKE_CURRENT_LIST_DIR}/GenVersion.cmake" "-D" "SRC=${CMAKE_CURRENT_SOURCE_DIR}/win32/version.rc.in"
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/win32/version.rc.in" "-D" "DEST=${CMAKE_BINARY_DIR}/${exe}.rc"
"${GIT_INDEX_FILE}") "-P" "${CMAKE_CURRENT_LIST_DIR}/GenVersion.cmake"
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/win32/version.rc.in"
add_custom_command( "${GIT_INDEX_FILE}")
OUTPUT "${CMAKE_BINARY_DIR}/lokinet_resource.h" endforeach()
COMMAND "${CMAKE_COMMAND}"
"-D" "GIT=${GIT_EXECUTABLE}"
"-D" "SRC=${CMAKE_CURRENT_SOURCE_DIR}/win32/resource.h.in"
"-D" "DEST=${CMAKE_BINARY_DIR}/lokinet_resource.h"
"-P" "${CMAKE_CURRENT_LIST_DIR}/GenVersion.cmake"
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/win32/resource.h.in"
"${GIT_INDEX_FILE}")
endif() endif()
else() else()
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/constants/version.cpp.in" "${CMAKE_CURRENT_BINARY_DIR}/constants/version.cpp" @ONLY) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/constants/version.cpp.in" "${CMAKE_CURRENT_BINARY_DIR}/constants/version.cpp" @ONLY)
if(WIN32) if(WIN32)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/win32/version.rc.in" "${CMAKE_BINARY_DIR}/version.rc" @ONLY) foreach(exe IN ITEMS lokinet lokinet-vpn lokinet-bootstrap)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/win32/resource.h.in" "${CMAKE_BINARY_DIR}/lokinet_resource.h" @ONLY) set(lokinet_EXE_NAME "${exe}.exe")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/win32/version.rc.in" "${CMAKE_BINARY_DIR}/${exe}.rc" @ONLY)
endforeach()
endif() endif()
endif() endif()
add_custom_target(genversion_cpp DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/constants/version.cpp") add_custom_target(genversion_cpp DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/constants/version.cpp")
if(WIN32) if(WIN32)
add_custom_target(genversion_rc DEPENDS "${CMAKE_BINARY_DIR}/version.rc" "${CMAKE_BINARY_DIR}/lokinet_resource.h") add_custom_target(genversion_rc DEPENDS "${CMAKE_BINARY_DIR}/lokinet.rc" "${CMAKE_BINARY_DIR}/lokinet-vpn.rc" "${CMAKE_BINARY_DIR}/lokinet-bootstrap.rc")
else() else()
add_custom_target(genversion_rc) add_custom_target(genversion_rc)
endif() endif()

View File

@ -49,7 +49,7 @@ endif()
foreach(exe ${exetargets}) foreach(exe ${exetargets})
if(WIN32 AND NOT MSVC_VERSION) if(WIN32 AND NOT MSVC_VERSION)
target_sources(${exe} PRIVATE ${CMAKE_BINARY_DIR}/version.rc) target_sources(${exe} PRIVATE ${CMAKE_BINARY_DIR}/${exe}.rc)
target_link_libraries(${exe} PRIVATE -static-libstdc++ -static-libgcc --static -Wl,--pic-executable,-e,mainCRTStartup,--subsystem,console:5.00) target_link_libraries(${exe} PRIVATE -static-libstdc++ -static-libgcc --static -Wl,--pic-executable,-e,mainCRTStartup,--subsystem,console:5.00)
target_link_libraries(${exe} PRIVATE ws2_32 iphlpapi) target_link_libraries(${exe} PRIVATE ws2_32 iphlpapi)
elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")

View File

@ -1,17 +0,0 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by version.rc
//
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 101
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1000
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
// clang-format off
#define lokinet_VERSION @lokinet_VERSION_MAJOR@, @lokinet_VERSION_MINOR@, @lokinet_VERSION_PATCH@, 0

View File

@ -6,7 +6,10 @@
// //
// Microsoft Visual C++ generated resource script. // Microsoft Visual C++ generated resource script.
// //
#include "lokinet_resource.h"
// clang-format off
#define lokinet_VERSION @lokinet_VERSION_MAJOR@, @lokinet_VERSION_MINOR@, @lokinet_VERSION_PATCH@, 0
#ifdef __GNUC__ // make windows rc accept this #ifdef __GNUC__ // make windows rc accept this
#include <winresrc.h> #include <winresrc.h>
#endif #endif
@ -72,7 +75,7 @@ BEGIN
VALUE "FileVersion", "@lokinet_VERSION@" VALUE "FileVersion", "@lokinet_VERSION@"
VALUE "InternalName", "lokinet" VALUE "InternalName", "lokinet"
VALUE "LegalCopyright", "Copyright (c) 2018-2022 Jeff Becker, Rick V for the OPTF. This software is provided under the terms of the GPL3; see the file LICENSE for details." VALUE "LegalCopyright", "Copyright (c) 2018-2022 Jeff Becker, Rick V for the OPTF. This software is provided under the terms of the GPL3; see the file LICENSE for details."
VALUE "OriginalFilename", "lokinet.exe" VALUE "OriginalFilename", "@lokinet_EXE_NAME@"
VALUE "ProductName", "LokiNET for Windows" VALUE "ProductName", "LokiNET for Windows"
VALUE "ProductVersion", "@lokinet_VERSION@" VALUE "ProductVersion", "@lokinet_VERSION@"
END END