X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=CMakeLists.txt;h=b581c842a77e35ab352f7b5a8e690b1efbda700a;hb=2b2523fb951f63f072cfba514c26f2feea5f4329;hp=f715ac1ea1ed43ba3787d488f19cdd100e93e75e;hpb=57e25195ebff3355f4463735f9bb820442caeab3;p=platform%2Fupstream%2Fglslang.git diff --git a/CMakeLists.txt b/CMakeLists.txt index f715ac1..b581c84 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,7 +33,7 @@ # increase to 3.1 once all major distributions # include a version of CMake >= 3.1 -cmake_minimum_required(VERSION 2.8.12) +cmake_minimum_required(VERSION 3.14.0) if (POLICY CMP0048) cmake_policy(SET CMP0048 NEW) endif() @@ -50,6 +50,7 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # Adhere to GNU filesystem layout conventions include(GNUInstallDirs) +include(CMakePackageConfigHelpers) # Needed for CMAKE_DEPENDENT_OPTION macro include(CMakeDependentOption) @@ -106,7 +107,14 @@ CMAKE_DEPENDENT_OPTION(ENABLE_HLSL option(ENABLE_RTTI "Enables RTTI" OFF) option(ENABLE_EXCEPTIONS "Enables Exceptions" OFF) option(ENABLE_OPT "Enables spirv-opt capability if present" ON) -option(ENABLE_PCH "Enables Precompiled header" ON) + +if(MINGW OR (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND ${CMAKE_CXX_COMPILER_ID} MATCHES "GNU")) + # Workaround for CMake behavior on Mac OS with gcc, cmake generates -Xarch_* arguments + # which gcc rejects + option(ENABLE_PCH "Enables Precompiled header" OFF) +else() + option(ENABLE_PCH "Enables Precompiled header" ON) +endif() option(ENABLE_CTEST "Enables testing" ON) if(ENABLE_GLSLANG_INSTALL AND CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT AND WIN32) @@ -163,7 +171,7 @@ if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") add_compile_options(-Werror=deprecated-copy) endif() - if(NOT CMAKE_VERSION VERSION_LESS "3.13") + if(NOT CMAKE_VERSION VERSION_LESS "3.13" AND NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin") # Error if there's symbols that are not found at link time. # add_link_options() was added in CMake 3.13 - if using an earlier # version don't set this - it should be caught by presubmits anyway. @@ -184,7 +192,11 @@ elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang" AND NOT MSVC) # Error if there's symbols that are not found at link time. # add_link_options() was added in CMake 3.13 - if using an earlier # version don't set this - it should be caught by presubmits anyway. - add_link_options("-Wl,-undefined,error") + if (WIN32) + add_link_options("-Wl,--no-undefined") + else() + add_link_options("-Wl,-undefined,error") + endif() endif() elseif(MSVC) if(NOT ENABLE_RTTI) @@ -356,3 +368,38 @@ if(ENABLE_CTEST AND BUILD_TESTING) COMMAND bash ${IGNORE_CR_FLAG} runtests ${RESULTS_PATH} ${VALIDATOR_PATH} ${REMAP_PATH} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Test/) endif() + +if(ENABLE_GLSLANG_INSTALL) + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/glslang-config.cmake.in" [=[ + @PACKAGE_INIT@ + include("@PACKAGE_PATH_EXPORT_TARGETS@") + ]=]) + + set(PATH_EXPORT_TARGETS "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake") + configure_package_config_file( + "${CMAKE_CURRENT_BINARY_DIR}/glslang-config.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/glslang-config.cmake" + PATH_VARS + PATH_EXPORT_TARGETS + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} + ) + + write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/glslang-config-version.cmake" + VERSION ${GLSLANG_VERSION} + COMPATIBILITY SameMajorVersion + ) + + install( + EXPORT glslang-targets + NAMESPACE "glslang::" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" + ) + + install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/glslang-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/glslang-config-version.cmake" + DESTINATION + "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" + ) +endif() \ No newline at end of file