You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by lo...@apache.org on 2022/09/28 13:17:51 UTC
[nifi-minifi-cpp] 01/02: MINIFICPP-1834 Add VERSIONINFO resource file
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 <fg...@gmail.com>
AuthorDate: Mon Sep 12 17:53:54 2022 +0200
MINIFICPP-1834 Add VERSIONINFO resource file
Signed-off-by: Gabor Gyimesi <ga...@gmail.com>
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%