Merged in StudioEtrange/ryzomcore/cmake-fixes (pull request #55)

Cmake fix - FindWindowsSDK
This commit is contained in:
Cédric OCHS 2014-02-28 10:19:37 +01:00
commit c5e40670d9

View file

@ -71,11 +71,14 @@ SET(WINSDKENV_DIR $ENV{WINSDK_DIR})
MACRO(FIND_WINSDK_VERSION_HEADERS) MACRO(FIND_WINSDK_VERSION_HEADERS)
IF(WINSDK_DIR AND NOT WINSDK_VERSION) IF(WINSDK_DIR AND NOT WINSDK_VERSION)
# Search version in headers # Search version in headers
IF(EXISTS ${WINSDK_DIR}/include/Msi.h) FIND_FILE(_MSI_FILE Msi.h
SET(_MSI_FILE ${WINSDK_DIR}/include/Msi.h) PATHS
ENDIF(EXISTS ${WINSDK_DIR}/include/Msi.h) ${WINSDK_DIR}/Include/um
${WINSDK_DIR}/Include
)
IF(_MSI_FILE) IF(_MSI_FILE)
# Look for Windows SDK 8.0 # Look for Windows SDK 8.0
FILE(STRINGS ${_MSI_FILE} _CONTENT REGEX "^#ifndef NTDDI_WIN8") FILE(STRINGS ${_MSI_FILE} _CONTENT REGEX "^#ifndef NTDDI_WIN8")
@ -88,11 +91,11 @@ MACRO(FIND_WINSDK_VERSION_HEADERS)
FILE(STRINGS ${_MSI_FILE} _CONTENT REGEX "^#ifndef NTDDI_WIN7") FILE(STRINGS ${_MSI_FILE} _CONTENT REGEX "^#ifndef NTDDI_WIN7")
IF(_CONTENT) IF(_CONTENT)
IF(EXISTS ${WINSDK_DIR}/include/winsdkver.h) FIND_FILE(_WINSDKVER_FILE winsdkver.h WinSDKVer.h
SET(_WINSDKVER_FILE ${WINSDK_DIR}/include/winsdkver.h) PATHS
ELSEIF(EXISTS ${WINSDK_DIR}/include/WinSDKVer.h) ${WINSDK_DIR}/Include/um
SET(_WINSDKVER_FILE ${WINSDK_DIR}/include/WinSDKVer.h) ${WINSDK_DIR}/Include
ENDIF(EXISTS ${WINSDK_DIR}/include/winsdkver.h) )
IF(_WINSDKVER_FILE) IF(_WINSDKVER_FILE)
# Load WinSDKVer.h content # Load WinSDKVer.h content
@ -162,9 +165,13 @@ MACRO(USE_CURRENT_WINSDK)
SET(WINSDK_VERSION_FULL "") SET(WINSDK_VERSION_FULL "")
# Use WINSDK environment variable # Use WINSDK environment variable
IF(WINSDKENV_DIR AND EXISTS ${WINSDKENV_DIR}/include/Windows.h) IF(WINSDKENV_DIR)
SET(WINSDK_DIR ${WINSDKENV_DIR}) FIND_PATH(WINSDK_DIR Windows.h
ENDIF(WINSDKENV_DIR AND EXISTS ${WINSDKENV_DIR}/include/Windows.h) HINTS
${WINSDKENV_DIR}/Include/um
${WINSDKENV_DIR}/Include
)
ENDIF(WINSDKENV_DIR)
# Use INCLUDE environment variable # Use INCLUDE environment variable
IF(NOT WINSDK_DIR AND WINSDKCURRENT_VERSION_INCLUDE) IF(NOT WINSDK_DIR AND WINSDKCURRENT_VERSION_INCLUDE)
@ -173,8 +180,8 @@ MACRO(USE_CURRENT_WINSDK)
# Look for Windows.h because there are several paths # Look for Windows.h because there are several paths
IF(EXISTS ${_INCLUDE}/Windows.h) IF(EXISTS ${_INCLUDE}/Windows.h)
STRING(REGEX REPLACE "/(include|INCLUDE|Include)" "" WINSDK_DIR ${_INCLUDE}) STRING(REGEX REPLACE "/(include|INCLUDE|Include)(.*)" "" WINSDK_DIR ${_INCLUDE})
MESSAGE(STATUS "Found Windows SDK environment variable in ${WINSDK_DIR}") MESSAGE(STATUS "Found Windows SDK from include environment variable in ${WINSDK_DIR}")
BREAK() BREAK()
ENDIF(EXISTS ${_INCLUDE}/Windows.h) ENDIF(EXISTS ${_INCLUDE}/Windows.h)
ENDFOREACH(_INCLUDE) ENDFOREACH(_INCLUDE)