Skip to content

Commit

Permalink
generate windows rc for each executable target so we can set the exec…
Browse files Browse the repository at this point in the history
…utable name right for each one
  • Loading branch information
majestrate committed May 30, 2022
1 parent f05c2eb commit e480e36
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 43 deletions.
41 changes: 18 additions & 23 deletions cmake/Version.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
2 changes: 1 addition & 1 deletion daemon/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down
17 changes: 0 additions & 17 deletions llarp/win32/resource.h.in

This file was deleted.

7 changes: 5 additions & 2 deletions llarp/win32/version.rc.in
Original file line number Diff line number Diff line change
Expand Up @@ -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 <winresrc.h>
#endif
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit e480e36

Please sign in to comment.