glslang_pch(SOURCES MachineIndependent/pch.cpp)
+if(ENABLE_HLSL)
+ list(APPEND SOURCES
+ ../hlsl/hlslAttributes.cpp
+ ../hlsl/hlslParseHelper.cpp
+ ../hlsl/hlslScanContext.cpp
+ ../hlsl/hlslOpMap.cpp
+ ../hlsl/hlslTokenStream.cpp
+ ../hlsl/hlslGrammar.cpp
+ ../hlsl/hlslParseables.cpp)
+
+ list(APPEND HEADERS
+ ../hlsl/hlslAttributes.h
+ ../hlsl/hlslParseHelper.h
+ ../hlsl/hlslTokens.h
+ ../hlsl/hlslScanContext.h
+ ../hlsl/hlslOpMap.h
+ ../hlsl/hlslTokenStream.h
+ ../hlsl/hlslGrammar.h
+ ../hlsl/hlslParseables.h)
+endif(ENABLE_HLSL)
+
add_library(glslang ${LIB_TYPE} ${BISON_GLSLParser_OUTPUT_SOURCE} ${SOURCES} ${HEADERS})
set_property(TARGET glslang PROPERTY FOLDER glslang)
set_property(TARGET glslang PROPERTY POSITION_INDEPENDENT_CODE ON)
target_link_libraries(glslang OGLCompiler OSDependent)
-target_include_directories(glslang PUBLIC
+target_include_directories(glslang PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
set_target_properties(glslang PROPERTIES PREFIX "")
endif()
-if(ENABLE_HLSL)
- target_link_libraries(glslang HLSL)
-endif()
-
if(WIN32)
source_group("Public" REGULAR_EXPRESSION "Public/*")
source_group("MachineIndependent" REGULAR_EXPRESSION "MachineIndependent/[^/]*")
-set(SOURCES
- hlslAttributes.cpp
- hlslParseHelper.cpp
- hlslScanContext.cpp
- hlslOpMap.cpp
- hlslTokenStream.cpp
- hlslGrammar.cpp
- hlslParseables.cpp)
-set(HEADERS
- hlslAttributes.h
- hlslParseHelper.h
- hlslTokens.h
- hlslScanContext.h
- hlslOpMap.h
- hlslTokenStream.h
- hlslGrammar.h
- hlslParseables.h)
+# The HLSL source is directly embedded into the glslang target when ENABLE_HLSL
+# is set.
+# The HLSL target is now just a stub that exists for backwards compatibility for
+# projects that referenced this target.
-glslang_pch(SOURCES pch.cpp)
-
-add_library(HLSL ${LIB_TYPE} ${SOURCES} ${HEADERS})
+add_library(HLSL ${LIB_TYPE} "stub.cpp")
set_property(TARGET HLSL PROPERTY FOLDER hlsl)
set_property(TARGET HLSL PROPERTY POSITION_INDEPENDENT_CODE ON)
set_target_properties(HLSL PROPERTIES PREFIX "")
endif()
-if(WIN32)
- source_group("Source" FILES ${SOURCES} ${HEADERS})
-endif(WIN32)
-
if(ENABLE_GLSLANG_INSTALL)
if(BUILD_SHARED_LIBS)
install(TARGETS HLSL EXPORT HLSLTargets
--- /dev/null
+//
+// Copyright (C) 2020 Google, Inc.
+//
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+//
+// Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+//
+// Neither the name of Google, Inc., nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+
+// The HLSL source is directly embedded into the glslang target when ENABLE_HLSL
+// is set.
+// The HLSL target is now just a stub that exists for backwards compatibility
+// for projects that referenced this target. As a target requires at least one
+// source file to build, this file acts as that stub.