From e480e36f3de45ee50bfe504cf32e26ec5c52cc48 Mon Sep 17 00:00:00 2001 From: Jeff Date: Fri, 27 May 2022 10:14:31 -0400 Subject: [PATCH] generate windows rc for each executable target so we can set the executable name right for each one --- cmake/Version.cmake | 41 +++++++++++++++++---------------------- daemon/CMakeLists.txt | 2 +- llarp/win32/resource.h.in | 17 ---------------- llarp/win32/version.rc.in | 7 +++++-- 4 files changed, 24 insertions(+), 43 deletions(-) delete mode 100644 llarp/win32/resource.h.in diff --git a/cmake/Version.cmake b/cmake/Version.cmake index c967d53e3..79cc10250 100644 --- a/cmake/Version.cmake +++ b/cmake/Version.cmake @@ -12,39 +12,34 @@ if(EXISTS ${GIT_INDEX_FILE} AND ( GIT_FOUND OR Git_FOUND) ) "-D" "DEST=${CMAKE_CURRENT_BINARY_DIR}/constants/version.cpp" "-P" "${CMAKE_CURRENT_LIST_DIR}/GenVersion.cmake" DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/constants/version.cpp.in" - "${GIT_INDEX_FILE}") + "${GIT_INDEX_FILE}") if(WIN32) - add_custom_command( - OUTPUT "${CMAKE_BINARY_DIR}/version.rc" - COMMAND "${CMAKE_COMMAND}" - "-D" "GIT=${GIT_EXECUTABLE}" - "-D" "SRC=${CMAKE_CURRENT_SOURCE_DIR}/constants/version.cpp.in" - "-D" "DEST=${CMAKE_BINARY_DIR}/version.rc" - "-P" "${CMAKE_CURRENT_LIST_DIR}/GenVersion.cmake" - DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/win32/version.rc.in" - "${GIT_INDEX_FILE}") - - add_custom_command( - OUTPUT "${CMAKE_BINARY_DIR}/lokinet_resource.h" - 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}") + foreach(exe IN ITEMS lokinet lokinet-vpn lokinet-bootstrap) + set(lokinet_EXE_NAME "${exe}.exe") + add_custom_command( + OUTPUT "${CMAKE_BINARY_DIR}/${exe}.rc" + COMMAND "${CMAKE_COMMAND}" + "-D" "GIT=${GIT_EXECUTABLE}" + "-D" "SRC=${CMAKE_CURRENT_SOURCE_DIR}/win32/version.rc.in" + "-D" "DEST=${CMAKE_BINARY_DIR}/${exe}.rc" + "-P" "${CMAKE_CURRENT_LIST_DIR}/GenVersion.cmake" + DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/win32/version.rc.in" + "${GIT_INDEX_FILE}") + endforeach() endif() else() configure_file("${CMAKE_CURRENT_SOURCE_DIR}/constants/version.cpp.in" "${CMAKE_CURRENT_BINARY_DIR}/constants/version.cpp" @ONLY) if(WIN32) - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/win32/version.rc.in" "${CMAKE_BINARY_DIR}/version.rc" @ONLY) - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/win32/resource.h.in" "${CMAKE_BINARY_DIR}/lokinet_resource.h" @ONLY) + foreach(exe IN ITEMS lokinet lokinet-vpn lokinet-bootstrap) + 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() add_custom_target(genversion_cpp DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/constants/version.cpp") 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() add_custom_target(genversion_rc) endif() diff --git a/daemon/CMakeLists.txt b/daemon/CMakeLists.txt index a65ed660a..233c436ce 100644 --- a/daemon/CMakeLists.txt +++ b/daemon/CMakeLists.txt @@ -49,7 +49,7 @@ endif() foreach(exe ${exetargets}) 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 ws2_32 iphlpapi) elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") diff --git a/llarp/win32/resource.h.in b/llarp/win32/resource.h.in deleted file mode 100644 index 477e93b9b..000000000 --- a/llarp/win32/resource.h.in +++ /dev/null @@ -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 diff --git a/llarp/win32/version.rc.in b/llarp/win32/version.rc.in index 23b4e996d..d0021caa3 100644 --- a/llarp/win32/version.rc.in +++ b/llarp/win32/version.rc.in @@ -6,7 +6,10 @@ // // 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 #include #endif @@ -72,7 +75,7 @@ BEGIN VALUE "FileVersion", "@lokinet_VERSION@" 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 "OriginalFilename", "lokinet.exe" + VALUE "OriginalFilename", "@lokinet_EXE_NAME@" VALUE "ProductName", "LokiNET for Windows" VALUE "ProductVersion", "@lokinet_VERSION@" END