endif()
endfunction()
-# If on Windows and building with MSVC, add the resource script containing the
-# VERSIONINFO data to the project. This embeds version resource information
-# into the output .exe or .dll.
-# TODO: Enable for MinGW Windows builds too.
-#
-function(add_windows_version_resource_file OUT_VAR)
- set(sources ${ARGN})
- if (MSVC)
- set(resource_file ${LLVM_SOURCE_DIR}/resources/windows_version_resource.rc)
- set(sources ${sources} ${resource_file})
- source_group("Resource Files" ${resource_file})
- set(windows_resource_file ${resource_file} PARENT_SCOPE)
- endif(MSVC)
-
- set(${OUT_VAR} ${sources} PARENT_SCOPE)
-endfunction(add_windows_version_resource_file)
-
-# set_windows_version_resource_properties(name resource_file...
-# VERSION_MAJOR int
-# Optional major version number (defaults to LLVM_VERSION_MAJOR)
-# VERSION_MINOR int
-# Optional minor version number (defaults to LLVM_VERSION_MINOR)
-# VERSION_PATCHLEVEL int
-# Optional patchlevel version number (defaults to LLVM_VERSION_PATCH)
-# VERSION_STRING
-# Optional version string (defaults to PACKAGE_VERSION)
-# PRODUCT_NAME
-# Optional product name string (defaults to "LLVM")
-# )
-function(set_windows_version_resource_properties name resource_file)
- cmake_parse_arguments(ARG
- ""
- "VERSION_MAJOR;VERSION_MINOR;VERSION_PATCHLEVEL;VERSION_STRING;PRODUCT_NAME"
- ""
- ${ARGN})
-
- if (NOT DEFINED ARG_VERSION_MAJOR)
- set(ARG_VERSION_MAJOR ${LLVM_VERSION_MAJOR})
- endif()
-
- if (NOT DEFINED ARG_VERSION_MINOR)
- set(ARG_VERSION_MINOR ${LLVM_VERSION_MINOR})
- endif()
-
- if (NOT DEFINED ARG_VERSION_PATCHLEVEL)
- set(ARG_VERSION_PATCHLEVEL ${LLVM_VERSION_PATCH})
- endif()
-
- if (NOT DEFINED ARG_VERSION_STRING)
- set(ARG_VERSION_STRING ${PACKAGE_VERSION})
- endif()
-
- if (NOT DEFINED ARG_PRODUCT_NAME)
- set(ARG_PRODUCT_NAME "LLVM")
- endif()
-
- set_property(SOURCE ${resource_file}
- PROPERTY COMPILE_DEFINITIONS
- "RC_VERSION_FIELD_1=${ARG_VERSION_MAJOR}"
- "RC_VERSION_FIELD_2=${ARG_VERSION_MINOR}"
- "RC_VERSION_FIELD_3=${ARG_VERSION_PATCHLEVEL}"
- "RC_VERSION_FIELD_4=0"
- "RC_FILE_VERSION=\"${ARG_VERSION_STRING}\""
- "RC_INTERNAL_NAME=\"${name}\""
- "RC_PRODUCT_NAME=\"${ARG_PRODUCT_NAME}\""
- "RC_PRODUCT_VERSION=\"${ARG_VERSION_STRING}\"")
-endfunction(set_windows_version_resource_properties)
-
# llvm_add_library(name sources...
# SHARED;STATIC
# STATIC by default w/o BUILD_SHARED_LIBS.
if(ARG_MODULE)
add_library(${name} MODULE ${ALL_FILES})
elseif(ARG_SHARED)
- add_windows_version_resource_file(ALL_FILES ${ALL_FILES})
add_library(${name} SHARED ${ALL_FILES})
else()
add_library(${name} STATIC ${ALL_FILES})
endif()
-
- if(DEFINED windows_resource_file)
- set_windows_version_resource_properties(${name} ${windows_resource_file})
- set(windows_resource_file ${windows_resource_file} PARENT_SCOPE)
- endif()
-
set_output_directory(${name} ${LLVM_RUNTIME_OUTPUT_INTDIR} ${LLVM_LIBRARY_OUTPUT_INTDIR})
llvm_update_compile_flags(${name})
add_link_opts( ${name} )
macro(add_llvm_executable name)
llvm_process_sources( ALL_FILES ${ARGN} )
- add_windows_version_resource_file(ALL_FILES ${ALL_FILES})
-
if( EXCLUDE_FROM_ALL )
add_executable(${name} EXCLUDE_FROM_ALL ${ALL_FILES})
else()
add_executable(${name} ${ALL_FILES})
endif()
-
- if(DEFINED windows_resource_file)
- set_windows_version_resource_properties(${name} ${windows_resource_file})
- endif()
-
llvm_update_compile_flags(${name})
add_link_opts( ${name} )
+++ /dev/null
-// Microsoft Visual C++ resource script for embedding version information.
-// The format is described at:
-// http://msdn.microsoft.com/en-gb/library/windows/desktop/aa380599(v=vs.85).aspx
-// The VERSIONINFO resource is described at:
-// https://msdn.microsoft.com/en-gb/library/windows/desktop/aa381058(v=vs.85).aspx
-
-
-// Default values for required fields.
-
-#ifndef RC_VERSION_FIELD_1
-#define RC_VERSION_FIELD_1 0
-#endif
-
-#ifndef RC_VERSION_FIELD_2
-#define RC_VERSION_FIELD_2 0
-#endif
-
-#ifndef RC_VERSION_FIELD_3
-#define RC_VERSION_FIELD_3 0
-#endif
-
-#ifndef RC_VERSION_FIELD_4
-#define RC_VERSION_FIELD_4 0
-#endif
-
-#ifndef RC_COMPANY_NAME
-#define RC_COMPANY_NAME ""
-#endif
-
-#ifndef RC_FILE_DESCRIPTION
-#define RC_FILE_DESCRIPTION ""
-#endif
-
-#ifndef RC_FILE_VERSION
-#define RC_FILE_VERSION ""
-#endif
-
-#ifndef RC_INTERNAL_NAME
-#define RC_INTERNAL_NAME ""
-#endif
-
-#ifndef RC_ORIGINAL_FILENAME
-#define RC_ORIGINAL_FILENAME ""
-#endif
-
-#ifndef RC_PRODUCT_NAME
-#define RC_PRODUCT_NAME ""
-#endif
-
-#ifndef RC_PRODUCT_VERSION
-#define RC_PRODUCT_VERSION ""
-#endif
-
-
-1 VERSIONINFO
-FILEVERSION RC_VERSION_FIELD_1,RC_VERSION_FIELD_2,RC_VERSION_FIELD_3,RC_VERSION_FIELD_4
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904B0"
- BEGIN
- // Required strings
- VALUE "CompanyName", RC_COMPANY_NAME
- VALUE "FileDescription", RC_FILE_DESCRIPTION
- VALUE "FileVersion", RC_FILE_VERSION
- VALUE "InternalName", RC_INTERNAL_NAME
- VALUE "OriginalFilename", RC_ORIGINAL_FILENAME
- VALUE "ProductName", RC_PRODUCT_NAME
- VALUE "ProductVersion", RC_PRODUCT_VERSION
-
- // Optional strings
-#ifdef RC_COMMENTS
- VALUE "Comments", RC_COMMENTS
-#endif
-
-#ifdef RC_COPYRIGHT
- VALUE "LegalCopyright", RC_COPYRIGHT
-#endif
- END
- END
-
- BLOCK "VarFileInfo"
- BEGIN
- // The translation must correspond to the above BLOCK inside StringFileInfo
- // langID 0x0409 U.S. English
- // charsetID 0x04B0 Unicode
- VALUE "Translation", 0x0409, 0x04B0
- END
-END
\ No newline at end of file