This is an automated email from the ASF dual-hosted git repository.

lordgamez pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git

commit 4851fd276e7d8717a3fa0ec66de442a52de3f0d9
Author: Ferenc Gerlits <[email protected]>
AuthorDate: Mon Sep 12 17:53:54 2022 +0200

    MINIFICPP-1834 Add VERSIONINFO resource file
    
    Signed-off-by: Gabor Gyimesi <[email protected]>
    
    This closes #1417
---
 CMakeLists.txt                |  8 +++++++-
 Windows.md                    |  6 ++++++
 controller/CMakeLists.txt     | 10 +++++++++-
 encrypt-config/CMakeLists.txt |  6 ++++++
 libminifi/CMakeLists.txt      |  2 +-
 minifi_main/CMakeLists.txt    |  5 +++++
 versioninfo.rc.in             | 44 +++++++++++++++++++++++++++++++++++++++++++
 win_build_vs.bat              |  2 +-
 8 files changed, 79 insertions(+), 4 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 23d07b5d9..7d25f9a4a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,7 +20,7 @@
 cmake_minimum_required(VERSION 3.17)
 cmake_policy(SET CMP0096 NEW) # policy to preserve the leading zeros in 
PROJECT_VERSION_{MAJOR,MINOR,PATCH,TWEAK}
 cmake_policy(SET CMP0065 OLD) # default export policy, required for self-dlopen
-project(nifi-minifi-cpp VERSION 0.12.0)
+project(nifi-minifi-cpp VERSION 0.13.0)
 set(PROJECT_NAME "nifi-minifi-cpp")
 
 # Optional build number for linux distribution targets' tar.gz output
@@ -54,6 +54,12 @@ endif()
 
 message("BUILD_IDENTIFIER is ${BUILD_IDENTIFIER}")
 
+if (WIN32)
+    set(LEGAL_COPYRIGHT "Apache License v2.0" CACHE STRING "Used in Windows 
versioninfo.rc")
+    set(COMPANY_NAME "Apache Software Foundation" CACHE STRING "Used in 
Windows versioninfo.rc")
+    set(PRODUCT_NAME "MiNiFi C++" CACHE STRING "Used in Windows 
versioninfo.rc")
+endif()
+
 if (${FORCE_COLORED_OUTPUT})
     message("CMAKE_CXX_COMPILER_ID is ${CMAKE_CXX_COMPILER_ID}")
     if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
diff --git a/Windows.md b/Windows.md
index 0c374ade6..87be64da4 100644
--- a/Windows.md
+++ b/Windows.md
@@ -82,6 +82,12 @@ Examples:
 
 `win_build_vs.bat` requires a Visual Studio 2019 build environment to be set 
up. Use the `x86 Native Tools Command Prompt for VS 2019`, or the `x64 Native 
Tools Command Prompt for VS 2019` for 32-bit and 64-bit builds respectively.
 
+You can specify additional CMake arguments by setting the 
EXTRA_CMAKE_ARGUMENTS variable:
+```
+> set EXTRA_CMAKE_ARGUMENTS=-DCOMPANY_NAME="Acme Inc" 
-DPRODUCT_NAME="Roadrunner Stopper"
+> win_build_vs.bat ...
+```
+
 ## Building directly with CMake
 
 The project can also be built manually using CMake. It requires the same 
environment the build script does (the proper Native Tools Command Prompt).
diff --git a/controller/CMakeLists.txt b/controller/CMakeLists.txt
index eaff1b8b4..f3e70d45a 100644
--- a/controller/CMakeLists.txt
+++ b/controller/CMakeLists.txt
@@ -30,7 +30,15 @@ endif()
 include(CppVersion)
 set_cpp_version()
 
-add_executable(minificontroller MiNiFiController.cpp 
../minifi_main/MainHelper.cpp)
+set(MINIFI_CONTROLLER_SOURCES MiNiFiController.cpp 
../minifi_main/MainHelper.cpp)
+if (WIN32)
+    set(EXECUTABLE_FILE_NAME "minificontroller.exe")
+    set(EXECUTABLE_FILE_DESCRIPTION "${PRODUCT_NAME} controller")
+    configure_file(${CMAKE_SOURCE_DIR}/versioninfo.rc.in 
${CMAKE_CURRENT_BINARY_DIR}/versioninfo.rc @ONLY)
+    list(APPEND MINIFI_CONTROLLER_SOURCES 
"${CMAKE_CURRENT_BINARY_DIR}/versioninfo.rc")
+endif()
+
+add_executable(minificontroller ${MINIFI_CONTROLLER_SOURCES})
 target_link_libraries(minificontroller ${LIBMINIFI} cxxopts Threads::Threads)
 
 set_target_properties(minificontroller PROPERTIES
diff --git a/encrypt-config/CMakeLists.txt b/encrypt-config/CMakeLists.txt
index 7be46f8f4..5c4005b3a 100644
--- a/encrypt-config/CMakeLists.txt
+++ b/encrypt-config/CMakeLists.txt
@@ -17,6 +17,12 @@
 # under the License.
 
 file(GLOB ENCRYPT_CONFIG_FILES  "*.cpp")
+if (WIN32)
+    set(EXECUTABLE_FILE_NAME "encrypt-config.exe")
+    set(EXECUTABLE_FILE_DESCRIPTION "${PRODUCT_NAME} encrypt-config tool")
+    configure_file(${CMAKE_SOURCE_DIR}/versioninfo.rc.in 
${CMAKE_CURRENT_BINARY_DIR}/versioninfo.rc @ONLY)
+    list(APPEND ENCRYPT_CONFIG_FILES 
"${CMAKE_CURRENT_BINARY_DIR}/versioninfo.rc")
+endif()
 add_executable(encrypt-config "${ENCRYPT_CONFIG_FILES}")
 target_include_directories(encrypt-config PRIVATE ../libminifi/include)
 target_link_libraries(encrypt-config libsodium ${LIBMINIFI})
diff --git a/libminifi/CMakeLists.txt b/libminifi/CMakeLists.txt
index 9bcfd218d..27d1c4f50 100644
--- a/libminifi/CMakeLists.txt
+++ b/libminifi/CMakeLists.txt
@@ -19,7 +19,7 @@
 
 cmake_minimum_required (VERSION 3.16)
 cmake_policy(SET CMP0096 NEW) # policy to preserve the leading zeros in 
PROJECT_VERSION_{MAJOR,MINOR,PATCH,TWEAK}
-project(nifi-libcore-minifi VERSION 0.12.0)
+project(nifi-libcore-minifi VERSION 0.13.0)
 set(PROJECT_NAME "nifi-libcore-minifi")
 
 if (WIN32)
diff --git a/minifi_main/CMakeLists.txt b/minifi_main/CMakeLists.txt
index ebde70042..ea7c9e381 100644
--- a/minifi_main/CMakeLists.txt
+++ b/minifi_main/CMakeLists.txt
@@ -36,6 +36,11 @@ set(MINIFIEXE_SOURCES MiNiFiMain.cpp MainHelper.cpp 
MiNiFiWindowsService.cpp Age
 if(WIN32)
     
set_source_files_properties("${CMAKE_BINARY_DIR}/libminifi/src/core/logging/WindowsMessageTextFile.rc"
 PROPERTIES GENERATED TRUE)
     list(APPEND MINIFIEXE_SOURCES 
"${CMAKE_BINARY_DIR}/libminifi/src/core/logging/WindowsMessageTextFile.rc")
+
+    set(EXECUTABLE_FILE_NAME "minifi.exe")
+    set(EXECUTABLE_FILE_DESCRIPTION "${PRODUCT_NAME} agent")
+    configure_file(${CMAKE_SOURCE_DIR}/versioninfo.rc.in 
${CMAKE_CURRENT_BINARY_DIR}/versioninfo.rc @ONLY)
+    list(APPEND MINIFIEXE_SOURCES "${CMAKE_CURRENT_BINARY_DIR}/versioninfo.rc")
 endif()
 add_executable(minifiexe ${MINIFIEXE_SOURCES})
 
diff --git a/versioninfo.rc.in b/versioninfo.rc.in
new file mode 100644
index 000000000..3f42108d3
--- /dev/null
+++ b/versioninfo.rc.in
@@ -0,0 +1,44 @@
+#include <windows.h>
+
+#define VER_FILEVERSION             
@PROJECT_VERSION_MAJOR@,@PROJECT_VERSION_MINOR@,@PROJECT_VERSION_PATCH@,0
+#define VER_FILEVERSION_STR         
"@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@\0"
+
+#define VER_PRODUCTVERSION          
@PROJECT_VERSION_MAJOR@,@PROJECT_VERSION_MINOR@,@PROJECT_VERSION_PATCH@,0
+#define VER_PRODUCTVERSION_STR      
"@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@\0"
+
+#ifndef DEBUG
+#define VER_DEBUG                   0
+#else
+#define VER_DEBUG                   VS_FF_DEBUG
+#endif
+
+VS_VERSION_INFO VERSIONINFO
+FILEVERSION     VER_FILEVERSION
+PRODUCTVERSION  VER_PRODUCTVERSION
+FILEFLAGSMASK   VS_FFI_FILEFLAGSMASK
+FILEFLAGS       VER_DEBUG
+FILEOS          VOS__WINDOWS32
+FILETYPE        VFT_APP
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "0409FDE9"
+        BEGIN
+            VALUE "LegalCopyright",   "@LEGAL_COPYRIGHT@"
+            VALUE "CompanyName",      "@COMPANY_NAME@"
+            VALUE "ProductName",      "@PRODUCT_NAME@"
+            VALUE "ProductVersion",   VER_PRODUCTVERSION_STR
+            VALUE "OriginalFilename", "@EXECUTABLE_FILE_NAME@"
+            VALUE "FileDescription",  "@EXECUTABLE_FILE_DESCRIPTION@"
+            VALUE "FileVersion",      VER_FILEVERSION_STR
+        END
+    END
+
+    BLOCK "VarFileInfo"
+    BEGIN
+        /* 0x409 == US English, 65001 = UTF-8                                  
                 */
+        /* this corresponds to the BLOCK statement under StringFileInfo: 65001 
== 0xFDE9        */
+        VALUE "Translation", 0x409, 65001
+        /* more translations could be added here, with more corresponding 
StringFileInfo blocks */
+    END
+END
diff --git a/win_build_vs.bat b/win_build_vs.bat
index 13619fe6c..88572536d 100755
--- a/win_build_vs.bat
+++ b/win_build_vs.bat
@@ -121,7 +121,7 @@ cmake -G %generator% -A %build_platform% 
-DINSTALLER_MERGE_MODULES=%installer_me
         -DENABLE_MQTT=%enable_mqtt% -DENABLE_OPC=%enable_opc% 
-DENABLE_OPENWSMAN=%enable_openwsman% -DENABLE_OPS=%enable_ops% 
-DENABLE_PCAP=%enable_pcap% ^
         -DENABLE_SCRIPTING=%enable_scripting% 
-DENABLE_SENSORS=%enable_sensors% -DENABLE_TENSORFLOW=%enable_tensorflow% 
-DENABLE_USB_CAMERA=%enable_usb_camera% ^
         -DBUILD_ROCKSDB=ON -DFORCE_WINDOWS=ON -DUSE_SYSTEM_UUID=OFF 
-DDISABLE_LIBARCHIVE=OFF -DEXCLUDE_BOOST=ON -DENABLE_WEL=ON 
-DFAIL_ON_WARNINGS=OFF -DSKIP_TESTS=%skiptests% ^
-        %strict_gsl_checks% %redist% -DENABLE_LINTER=%build_linter% 
"%scriptdir%" && %buildcmd%
+        %strict_gsl_checks% %redist% -DENABLE_LINTER=%build_linter% 
%EXTRA_CMAKE_ARGUMENTS% "%scriptdir%" && %buildcmd%
 IF %ERRORLEVEL% NEQ 0 EXIT /b %ERRORLEVEL%
 if [%cpack%] EQU [ON] (
     cpack -C %cmake_build_type%

Reply via email to