1# Copyright (C) 2020 The Khronos Group Inc. 2# 3# All rights reserved. 4# 5# Redistribution and use in source and binary forms, with or without 6# modification, are permitted provided that the following conditions 7# are met: 8# 9# Redistributions of source code must retain the above copyright 10# notice, this list of conditions and the following disclaimer. 11# 12# Redistributions in binary form must reproduce the above 13# copyright notice, this list of conditions and the following 14# disclaimer in the documentation and/or other materials provided 15# with the distribution. 16# 17# Neither the name of The Khronos Group Inc. nor the names of its 18# contributors may be used to endorse or promote products derived 19# from this software without specific prior written permission. 20# 21# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 24# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 25# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 26# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 27# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 28# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 31# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 32# POSSIBILITY OF SUCH DAMAGE. 33 34set(SOURCES ossource.cpp ../osinclude.h) 35 36add_library(OSDependent STATIC ${SOURCES}) 37set_property(TARGET OSDependent PROPERTY FOLDER glslang) 38set_property(TARGET OSDependent PROPERTY POSITION_INDEPENDENT_CODE ON) 39 40# MinGW GCC complains about function pointer casts to void*. 41# Turn that off with -fpermissive. 42if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") 43 target_compile_options(OSDependent PRIVATE -fpermissive) 44endif() 45 46if(WIN32) 47 source_group("Source" FILES ${SOURCES}) 48endif() 49 50if(ENABLE_GLSLANG_INSTALL) 51 install(TARGETS OSDependent EXPORT glslang-targets) 52 53 # Backward compatibility 54 file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/OSDependentTargets.cmake" " 55 message(WARNING \"Using `OSDependentTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\") 56 57 if (NOT TARGET glslang::OSDependent) 58 include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") 59 endif() 60 61 add_library(OSDependent ALIAS glslang::OSDependent) 62 ") 63 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/OSDependentTargets.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) 64endif() 65