diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4019deeeb3..751792db49 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -106,6 +106,11 @@ if(LINUX) set(UMF_LIBS ${UMF_LIBS} dl rt) # librt for shm_open() elseif(WINDOWS) set(UMF_SOURCES ${UMF_SOURCES} ${UMF_SOURCES_WINDOWS}) + + # Add resource file needed for Windows to fill metadata in binary files + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/libumf.rc.in" + "${CMAKE_CURRENT_BINARY_DIR}/libumf.rc" IMMEDIATE @ONLY) + set(UMF_SOURCES ${UMF_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/libumf.rc) elseif(MACOSX) set(UMF_SOURCES ${UMF_SOURCES} ${UMF_SOURCES_MACOSX}) endif() diff --git a/src/libumf.rc.in b/src/libumf.rc.in new file mode 100644 index 0000000000..f4ddd36538 --- /dev/null +++ b/src/libumf.rc.in @@ -0,0 +1,47 @@ +// Copyright (c) 2024 Intel Corporation +// +// Under the Apache License v2.0 with LLVM Exceptions. See LICENSE.TXT. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// + +#include + +#include "umf/base.h" + +#define UMF_VERNUMBERS @CMAKE_PROJECT_VERSION_MAJOR@,@CMAKE_PROJECT_VERSION_MINOR@,@CMAKE_PROJECT_VERSION_PATCH@,0 +#define UMF_VERSION "@CMAKE_PROJECT_VERSION_MAJOR@.@CMAKE_PROJECT_VERSION_MINOR@" + +VS_VERSION_INFO VERSIONINFO + FILEVERSION UMF_VERNUMBERS + PRODUCTVERSION UMF_VERNUMBERS + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0 +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE 0 +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" // U.S. English, Unicode (0x04b0 == 1200) + BEGIN + VALUE "CompanyName", "Intel Corporation\0" + VALUE "FileDescription", "Unified Memory Framework (UMF) library\0" + VALUE "FileVersion", UMF_VERSION "\0" + VALUE "LegalCopyright", "Copyright 2024, Intel Corporation. All rights reserved.\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "umf.dll\0" + VALUE "ProductName", "Unified Memory Framework (UMF)\0" + VALUE "ProductVersion", UMF_VERSION "\0" + VALUE "PrivateBuild", "\0" + VALUE "SpecialBuild", "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END diff --git a/src/proxy_lib/CMakeLists.txt b/src/proxy_lib/CMakeLists.txt index 7b03626c8e..af3f8cb60a 100644 --- a/src/proxy_lib/CMakeLists.txt +++ b/src/proxy_lib/CMakeLists.txt @@ -16,6 +16,11 @@ if(LINUX) set(PROXY_SOURCES ${PROXY_SOURCES} ${PROXY_SOURCES_LINUX}) elseif(WINDOWS) set(PROXY_SOURCES ${PROXY_SOURCES} ${PROXY_SOURCES_WINDOWS}) + + # Add resource file needed for Windows to fill metadata in binary files + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/proxy_lib.rc.in" + "${CMAKE_CURRENT_BINARY_DIR}/proxy_lib.rc" IMMEDIATE @ONLY) + set(PROXY_SOURCES ${PROXY_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/proxy_lib.rc) elseif(MACOSX) set(PROXY_SOURCES ${PROXY_SOURCES} ${PROXY_SOURCES_MACOSX}) endif() diff --git a/src/proxy_lib/proxy_lib.rc.in b/src/proxy_lib/proxy_lib.rc.in new file mode 100644 index 0000000000..d8f3fec274 --- /dev/null +++ b/src/proxy_lib/proxy_lib.rc.in @@ -0,0 +1,47 @@ +// Copyright (c) 2024 Intel Corporation +// +// Under the Apache License v2.0 with LLVM Exceptions. See LICENSE.TXT. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// + +#include + +#include "umf/base.h" + +#define UMF_VERNUMBERS @CMAKE_PROJECT_VERSION_MAJOR@,@CMAKE_PROJECT_VERSION_MINOR@,@CMAKE_PROJECT_VERSION_PATCH@,0 +#define UMF_VERSION "@CMAKE_PROJECT_VERSION_MAJOR@.@CMAKE_PROJECT_VERSION_MINOR@" + +VS_VERSION_INFO VERSIONINFO + FILEVERSION UMF_VERNUMBERS + PRODUCTVERSION UMF_VERNUMBERS + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0 +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE 0 +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" // U.S. English, Unicode (0x04b0 == 1200) + BEGIN + VALUE "CompanyName", "Intel Corporation\0" + VALUE "FileDescription", "Unified Memory Framework (UMF) proxy library\0" + VALUE "FileVersion", UMF_VERSION "\0" + VALUE "LegalCopyright", "Copyright 2024, Intel Corporation. All rights reserved.\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "umf_proxy.dll\0" + VALUE "ProductName", "Unified Memory Framework (UMF)\0" + VALUE "ProductVersion", UMF_VERSION "\0" + VALUE "PrivateBuild", "\0" + VALUE "SpecialBuild", "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END