Commit f31b1654 authored by Vladislav Vaintroub's avatar Vladislav Vaintroub

fix windows errors with version resource

parent ffb09263
...@@ -32,7 +32,9 @@ MACRO (INSTALL_DEBUG_SYMBOLS targets) ...@@ -32,7 +32,9 @@ MACRO (INSTALL_DEBUG_SYMBOLS targets)
STRING(REPLACE ".exe" ".pdb" pdb_location ${location}) STRING(REPLACE ".exe" ".pdb" pdb_location ${location})
STRING(REPLACE ".dll" ".pdb" pdb_location ${pdb_location}) STRING(REPLACE ".dll" ".pdb" pdb_location ${pdb_location})
STRING(REPLACE ".lib" ".pdb" pdb_location ${pdb_location}) STRING(REPLACE ".lib" ".pdb" pdb_location ${pdb_location})
STRING(REPLACE "${CMAKE_CFG_INTDIR}" "\${CMAKE_INSTALL_CONFIG_NAME}" pdb_location ${pdb_location}) IF(CMAKE_GENERATOR MATCHES "Visual Studio")
STRING(REPLACE "${CMAKE_CFG_INTDIR}" "\${CMAKE_INSTALL_CONFIG_NAME}" pdb_location ${pdb_location})
ENDIF()
INSTALL(FILES ${pdb_location} DESTINATION ${INSTALL_LOCATION}) INSTALL(FILES ${pdb_location} DESTINATION ${INSTALL_LOCATION})
ENDFOREACH() ENDFOREACH()
ENDIF() ENDIF()
...@@ -134,11 +136,6 @@ FUNCTION(MYSQL_INSTALL_TARGETS) ...@@ -134,11 +136,6 @@ FUNCTION(MYSQL_INSTALL_TARGETS)
ENDFOREACH() ENDFOREACH()
ENDIF() ENDIF()
IF(WIN32)
FOREACH(target ${TARGETS})
EMBED_VERSION_INFO(${target})
ENDFOREACH()
ENDIF()
INSTALL(TARGETS ${TARGETS} DESTINATION ${ARG_DESTINATION}) INSTALL(TARGETS ${TARGETS} DESTINATION ${ARG_DESTINATION})
SET(INSTALL_LOCATION ${ARG_DESTINATION} ) SET(INSTALL_LOCATION ${ARG_DESTINATION} )
......
...@@ -150,7 +150,7 @@ SET(COMPANYNAME ${CPACK_PACKAGE_VENDOR}) ...@@ -150,7 +150,7 @@ SET(COMPANYNAME ${CPACK_PACKAGE_VENDOR})
# Function to embed version info into executables/dlls on Windows # Function to embed version info into executables/dlls on Windows
# Refer http://msdn.microsoft.com/en-us/library/aa381058(VS.85).aspx # Refer http://msdn.microsoft.com/en-us/library/aa381058(VS.85).aspx
# for more information # for more information
FUNCTION(EMBED_VERSION_INFO target) FUNCTION(WIN32_ADD_VERSION_INFO SOURCES)
IF(NOT WIN32) IF(NOT WIN32)
RETURN() RETURN()
ENDIF() ENDIF()
...@@ -158,14 +158,8 @@ FUNCTION(EMBED_VERSION_INFO target) ...@@ -158,14 +158,8 @@ FUNCTION(EMBED_VERSION_INFO target)
RETURN() RETURN()
ENDIF() ENDIF()
GET_TARGET_PROPERTY(target_type ${target} TYPE) IF(NOT FILETYPE)
IF(target_type MATCHES "STATIC")
RETURN()
ENDIF()
IF(TARGET_TYPE MATCHES "EXE")
SET(FILETYPE VFT_APP) SET(FILETYPE VFT_APP)
ELSE()
SET(FILETYPE VFT_DLL)
ENDIF() ENDIF()
IF(NOT MAJOR_VERSION) IF(NOT MAJOR_VERSION)
...@@ -185,29 +179,7 @@ FUNCTION(EMBED_VERSION_INFO target) ...@@ -185,29 +179,7 @@ FUNCTION(EMBED_VERSION_INFO target)
ENDIF() ENDIF()
GET_FILENAME_COMPONENT(ORIGINALFILENAME ${target_location} NAME) GET_FILENAME_COMPONENT(ORIGINALFILENAME ${target_location} NAME)
# Directory where we have resouce script and compiled .res file
SET(RES_DIR ${CMAKE_BINARY_DIR}/version_resources)
# Create resource script (.rc)
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/cmake/versioninfo.rc.in CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/cmake/versioninfo.rc.in
${RES_DIR}/${target}_versioninfo.rc) ${CMAKE_CURRENT_BINARY_DIR}/${target}_versioninfo.rc)
LIST(APPEND ${SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/${target}_versioninfo.rc)
# Compile resource script to object if required
IF(EXISTS ${RES_DIR}/${target}_versioninfo.res)
IF(${RES_DIR}/${target}_versioninfo.rc IS_NEWER_THAN
${RES_DIR}/${target}_versioninfo.res)
SET(RUN_RC 1)
ENDIF()
ELSE()
SET(RUN_RC 1)
ENDIF()
IF(RUN_RC)
# Run resource compiler
EXECUTE_PROCESS(
COMMAND ${CMAKE_RC_COMPILER} ${target}_versioninfo.rc
WORKING_DIRECTORY ${RES_DIR} OUTPUT_QUIET
)
ENDIF()
TARGET_LINK_LIBRARIES(${target} ${RES_DIR}/${target}_versioninfo.res)
ENDFUNCTION() ENDFUNCTION()
...@@ -95,6 +95,7 @@ TARGET_LINK_LIBRARIES(sql ${MYSQLD_STATIC_PLUGIN_LIBS} ...@@ -95,6 +95,7 @@ TARGET_LINK_LIBRARIES(sql ${MYSQLD_STATIC_PLUGIN_LIBS}
IF(WIN32) IF(WIN32)
SET(MYSQLD_SOURCE main.cc nt_servc.cc nt_servc.h) SET(MYSQLD_SOURCE main.cc nt_servc.cc nt_servc.h)
WIN32_ADD_VERSION_INFO(MYSQLD_SOURCE)
ELSE() ELSE()
SET(MYSQLD_SOURCE main.cc ${DTRACE_PROBES_ALL}) SET(MYSQLD_SOURCE main.cc ${DTRACE_PROBES_ALL})
ENDIF() ENDIF()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment