blob: 4f930a362d9046edb7af968b1647905de55fbbc4 [file] [log] [blame]
# Copyright Siemens AG, 2014
# Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
# and Contributors.
#
# SPDX-License-Identifier: BSL-1.0
#
# Collection of common functionality for Poco CMake
# Find the Microsoft mc.exe message compiler
#
# CMAKE_MC_COMPILER - where to find mc.exe
if (WIN32)
# cmake has CMAKE_RC_COMPILER, but no message compiler
if ("${CMAKE_GENERATOR}" MATCHES "Visual Studio")
# this path is only present for 2008+, but we currently require PATH to
# be set up anyway
get_filename_component(sdk_dir "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows;CurrentInstallFolder]" REALPATH)
get_filename_component(kit_dir "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot]" REALPATH)
get_filename_component(kit81_dir "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot81]" REALPATH)
get_filename_component(kit10_dir "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot10]" REALPATH)
get_filename_component(kit10wow_dir "[HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot10]" REALPATH)
file(GLOB kit10_list ${kit10_dir}/bin/10.* ${kit10wow_dir}/bin/10.*)
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
list(APPEND tools_bin_dir_list "$ENV{WindowsSdkVerBinPath}/x64")
list(APPEND tools_bin_dir_list "${sdk_dir}/bin/x64")
list(APPEND tools_bin_dir_list "${kit_dir}/bin/x64")
list(APPEND tools_bin_dir_list "${kit81_dir}/bin/x64")
foreach (tmp_elem ${kit10_list})
if (IS_DIRECTORY ${tmp_elem})
list(APPEND tools_bin_dir_list "${tmp_elem}/x64")
endif()
endforeach()
else ()
list(APPEND tools_bin_dir_list "$ENV{WindowsSdkVerBinPath}/x86")
list(APPEND tools_bin_dir_list "${sdk_dir}/bin")
list(APPEND tools_bin_dir_list "${kit_dir}/bin/x86")
list(APPEND tools_bin_dir_list "${kit81_dir}/bin/x86")
foreach (tmp_elem ${kit10_list})
if (IS_DIRECTORY ${tmp_elem})
list(APPEND tools_bin_dir_list "${tmp_elem}/x86")
endif()
endforeach()
endif ()
endif ()
find_program(CMAKE_MC_COMPILER mc.exe HINTS ${tools_bin_dir_list} DOC "path to message compiler")
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(MessageCompiler
REQUIRED_VARS CMAKE_MC_COMPILER)
endif(WIN32)