glslang build: Always run a custom command for Bison. The Cmake BISON_TARGET rule doesn't understand this use of --defines, and so the targets are always rebuilt even if no source files change. Contributor: Stefanus Du Toit (stefanus@google.com).
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31111 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
parent
57193ecdc3
commit
0f4ef5b088
@ -68,19 +68,18 @@ set(HEADERS
|
||||
MachineIndependent/preprocessor/PpTokens.h)
|
||||
|
||||
find_package(BISON)
|
||||
if(BISON_FOUND)
|
||||
message("bison found")
|
||||
BISON_TARGET(GLSLParser MachineIndependent/glslang.y ${CMAKE_CURRENT_BINARY_DIR}/gen_glslang_tab.cpp
|
||||
COMPILE_FLAGS
|
||||
"--defines=${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp.h")
|
||||
else(BISON_FOUND)
|
||||
message("using custom command for bison on glslang.y")
|
||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp ${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp.h
|
||||
COMMAND ../tools/bison.exe --defines=${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp.h -t MachineIndependent/glslang.y -o ${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp
|
||||
MAIN_DEPENDENCY MachineIndependent/glslang.y
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
set(BISON_GLSLParser_OUTPUT_SOURCE ${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp)
|
||||
endif(BISON_FOUND)
|
||||
if(NOT BISON_FOUND)
|
||||
set(BISON_EXECUTABLE ../tools/bison.exe)
|
||||
message("bison not found. Assuming it is at ${BISON_EXECUTABLE}")
|
||||
endif()
|
||||
|
||||
# Always use a custom command since our use of --defines isn't assumed by CMake's BISON_TARGET,
|
||||
# which ends up causing the target to always be rebuilt.
|
||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp ${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp.h
|
||||
COMMAND ${BISON_EXECUTABLE} --defines=${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp.h -t MachineIndependent/glslang.y -o ${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp
|
||||
MAIN_DEPENDENCY MachineIndependent/glslang.y
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
set(BISON_GLSLParser_OUTPUT_SOURCE ${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp)
|
||||
|
||||
add_library(glslang STATIC ${BISON_GLSLParser_OUTPUT_SOURCE} ${SOURCES} ${HEADERS})
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user