This partly reverts commit 9b43e81dd999d82bc5c469c2b51d6f89b6aa2b71. Some of these packages were in the repo, revert things for those.
204 lines
9.9 KiB
Diff
204 lines
9.9 KiB
Diff
From 5ad09d0e13c80d3987eb5f27040384c39390a7d0 Mon Sep 17 00:00:00 2001
|
|
From: Ray Donnelly <mingw.android@gmail.com>
|
|
Date: Thu, 12 Dec 2013 16:52:29 +0000
|
|
Subject: [PATCH 1/4] CMakeLists.txt: Fixes and improvements
|
|
|
|
1. main.cpp doesn't exist anymore.
|
|
2. hlslang_tab.cpp is now Gen_hlslang_tab.cpp.
|
|
3. Remove redundancy in bison and flex execution.
|
|
4. Use find_package() to locate them if !windows.
|
|
---
|
|
CMakeLists.txt | 137 ++++++++++++++++++++++++++++-----------------------------
|
|
1 file changed, 68 insertions(+), 69 deletions(-)
|
|
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index f159a1d..dc30cd5 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -59,7 +59,6 @@ set(MACHINE_INDEPENDENT_FILES
|
|
hlslang/MachineIndependent/intermOut.cpp
|
|
hlslang/MachineIndependent/IntermTraverse.cpp
|
|
hlslang/MachineIndependent/localintermediate.h
|
|
- #hlslang/MachineIndependent/parseConst.cpp
|
|
hlslang/MachineIndependent/ParseHelper.cpp
|
|
hlslang/MachineIndependent/ParseHelper.h
|
|
hlslang/MachineIndependent/PoolAlloc.cpp
|
|
@@ -92,9 +91,9 @@ endif ()
|
|
|
|
|
|
set(MACHINE_INDEPENDENT_GENERATED_SOURCE_FILES
|
|
- ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent/Gen_hlslang.cpp
|
|
- ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent/hlslang_tab.cpp
|
|
- ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent/hlslang_tab.h
|
|
+ hlslang/MachineIndependent/Gen_hlslang.cpp
|
|
+ hlslang/MachineIndependent/Gen_hlslang_tab.cpp
|
|
+ hlslang/MachineIndependent/hlslang_tab.h
|
|
)
|
|
|
|
SET_SOURCE_FILES_PROPERTIES(${MACHINE_INDEPENDENT_GENERATED_SOURCE_FILES} PROPERTIES
|
|
@@ -107,62 +106,26 @@ source_group("Machine Independent\\Generated Source" FILES ${MACHINE_INDEPENDENT
|
|
# Add system specific settings
|
|
if (WIN32)
|
|
set(OSDEPENDENT_FILES
|
|
- hlslang/OSDependent/Windows/main.cpp
|
|
hlslang/OSDependent/Windows/osinclude.h
|
|
hlslang/OSDependent/Windows/ossource.cpp
|
|
)
|
|
source_group("OSDependent\\Windows" FILES ${OSDEPENDENT_FILES})
|
|
- include_directories(${CMAKE_CURRENT_SOURCE_DIR}/hlslang/OSDependent/Windows)
|
|
+ include_directories(hlslang/OSDependent/Windows)
|
|
|
|
- add_custom_command(OUTPUT hlslang/MachineIndependent/Gen_hlslang_tab.cpp hlslang/MachineIndependent/hlslang_tab.h
|
|
- COMMAND set ARGS "BISON_SIMPLE=../../tools/bison.simple"
|
|
- COMMAND set ARGS "BISON_HAIRY=../../tools/bison.simple"
|
|
- COMMAND ../../tools/bison.exe ARGS -d -t -v hlslang.y
|
|
- COMMAND copy ARGS /y hlslang_tab.c Gen_hlslang_tab.cpp
|
|
- COMMAND del ARGS hlslang_tab.c
|
|
- COMMAND del ARGS hlslang.output
|
|
- MAIN_DEPENDENCY hlslang/MachineIndependent/hlslang.y
|
|
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent
|
|
- COMMENT "Executing Bison on hlslang.y"
|
|
- )
|
|
-
|
|
- add_custom_command(OUTPUT hlslang/MachineIndependent/Gen_hlslang.cpp
|
|
- COMMAND ../../tools/flex.exe ARGS hlslang.l
|
|
- MAIN_DEPENDENCY hlslang/MachineIndependent/hlslang.l
|
|
- DEPENDS hlslang/MachineIndependent/hlslang_tab.h
|
|
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent
|
|
- COMMENT "Executing flex on hlslang.l"
|
|
- )
|
|
-
|
|
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D\"_HAS_ITERATOR_DEBUGGING=0\" /D\"_SECURE_SCL=0\" /D\"_CRT_SECURE_NO_WARNINGS\"")
|
|
- SET(TEST_LIBS opengl32.lib)
|
|
+ IF (MSVC)
|
|
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D\"_HAS_ITERATOR_DEBUGGING=0\" /D\"_SECURE_SCL=0\" /D\"_CRT_SECURE_NO_WARNINGS\"")
|
|
+ ENDIF (MSVC)
|
|
+ SET(TEST_LIBS opengl32 gdi32 user32)
|
|
elseif (APPLE)
|
|
set(OSDEPENDENT_FILES
|
|
hlslang/OSDependent/Mac/osinclude.h
|
|
hlslang/OSDependent/Mac/ossource.cpp
|
|
)
|
|
source_group("OSDependent\\Mac" FILES ${OSDEPENDENT_FILES})
|
|
- include_directories(${CMAKE_CURRENT_SOURCE_DIR}/hlslang/OSDependent/Mac)
|
|
-
|
|
- add_custom_command(OUTPUT hlslang/MachineIndependent/Gen_hlslang_tab.cpp hlslang/MachineIndependent/hlslang_tab.h
|
|
- COMMAND set ARGS "BISON_SIMPLE=../../tools/bison.simple"
|
|
- COMMAND set ARGS "BISON_HAIRY=../../tools/bison.simple"
|
|
- COMMAND bison ARGS -o hlslang_tab.cpp -d -t -v hlslang.y
|
|
- COMMAND mv hlslang_tab.hpp hlslang_tab.h
|
|
- MAIN_DEPENDENCY hlslang/MachineIndependent/hlslang.y
|
|
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent
|
|
- COMMENT "Executing Bison on hlslang.y"
|
|
- )
|
|
-
|
|
- add_custom_command(OUTPUT hlslang/MachineIndependent/Gen_hlslang.cpp
|
|
- COMMAND flex ARGS hlslang.l
|
|
- MAIN_DEPENDENCY hlslang/MachineIndependent/hlslang.l
|
|
- DEPENDS hlslang/MachineIndependent/hlslang_tab.h
|
|
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent
|
|
- COMMENT "Executing flex on hlslang.l"
|
|
- )
|
|
+ include_directories(hlslang/OSDependent/Mac)
|
|
+
|
|
FIND_LIBRARY(OPENGL_LIBRARY OpenGL)
|
|
- FIND_LIBRARY(COCOA_LIBRARY Cocoa)
|
|
+ FIND_LIBRARY(COCOA_LIBRARY Cocoa)
|
|
SET(TEST_LIBS ${OPENGL_LIBRARY} ${COCOA_LIBRARY})
|
|
elseif (UNIX)
|
|
set(OSDEPENDENT_FILES
|
|
@@ -170,33 +133,69 @@ elseif (UNIX)
|
|
hlslang/OSDependent/Linux/ossource.cpp
|
|
)
|
|
source_group("OSDependent\\Linux" FILES ${OSDEPENDENT_FILES})
|
|
- include_directories(${CMAKE_CURRENT_SOURCE_DIR}/hlslang/OSDependent/Linux)
|
|
-
|
|
- add_custom_command(OUTPUT hlslang/MachineIndependent/hlslang_tab.cpp hlslang/MachineIndependent/hlslang_tab.h
|
|
- COMMAND set ARGS "BISON_SIMPLE=../../tools/bison.simple"
|
|
- COMMAND set ARGS "BISON_HAIRY=../../tools/bison.simple"
|
|
- COMMAND bison ARGS -o hlslang_tab.cpp -d -t -v hlslang.y
|
|
- COMMAND mv hlslang_tab.hpp hlslang_tab.h
|
|
- MAIN_DEPENDENCY hlslang/MachineIndependent/hlslang.y
|
|
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent
|
|
- COMMENT "Executing Bison on hlslang.y"
|
|
- )
|
|
-
|
|
- add_custom_command(OUTPUT hlslang/MachineIndependent/Gen_hlslang.cpp
|
|
- COMMAND flex ARGS hlslang.l
|
|
- MAIN_DEPENDENCY hlslang/MachineIndependent/hlslang.l
|
|
- DEPENDS hlslang/MachineIndependent/hlslang_tab.h
|
|
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent
|
|
- COMMENT "Executing flex on hlslang.l"
|
|
- )
|
|
+ include_directories(hlslang/OSDependent/Linux)
|
|
+
|
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb")
|
|
SET(TEST_LIBS GL glut GLEW pthread)
|
|
endif ()
|
|
|
|
+# Bison reads two environment variables at build-time (BISON_SIMPLE and BISON_HAIRY):
|
|
+#
|
|
+# http://www.cmake.org/Wiki/CMake_FAQ#How_can_I_get_or_set_environment_variables.3F
|
|
+# "Also, environment variables SET in the CMakeLists.txt only take effect for cmake
|
|
+# itself (configure-time), so you cannot use this method to set an environment variable
|
|
+# that a custom command might need (build-time). Barring environment variable support
|
|
+# by various CMake commands (e.g. add_custom_command(), currently not supported yet),
|
|
+# an acceptable workaround may be to invoke shell scripts instead which wrap the
|
|
+# commands to be executed."
|
|
+#
|
|
+# So making that work for both batch files and shell:
|
|
+#
|
|
+# To be precise, here we want to check for batch file
|
|
+# execution rather than that we're using the MSVC IDE
|
|
+# or are generating "MinGW Makefiles".
|
|
+#
|
|
+if ((MSVC_IDE) OR (${CMAKE_GENERATOR} STREQUAL "MinGW Makefiles"))
|
|
+ SET(SETENV "set")
|
|
+ SET(CONTINUATION &)
|
|
+else ()
|
|
+ SET(SETENV)
|
|
+ SET(CONTINUATION)
|
|
+endif ()
|
|
+
|
|
+set(ENV{BISON_SIMPLE} ${CMAKE_CURRENT_SOURCE_DIR}/tools/bison.simple)
|
|
+set(ENV{BISON_HAIRY} ${CMAKE_CURRENT_SOURCE_DIR}/tools/bison.simple)
|
|
+
|
|
+if (WIN32)
|
|
+ set(BISON_EXECUTABLE ${CMAKE_CURRENT_SOURCE_DIR}/tools/bin/bison.exe)
|
|
+ set(FLEX_EXECUTABLE ${CMAKE_CURRENT_SOURCE_DIR}/tools/flex.exe)
|
|
+else ()
|
|
+ find_package(BISON REQUIRED)
|
|
+ find_package(FLEX REQUIRED)
|
|
+endif ()
|
|
+
|
|
+add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent/Gen_hlslang_tab.cpp ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent/hlslang_tab.h
|
|
+ COMMAND ${SETENV} BISON_SIMPLE=${CMAKE_CURRENT_SOURCE_DIR}/tools/bison.simple ${CONTINUATION}
|
|
+ ${SETENV} BISON_HAIRY=${CMAKE_CURRENT_SOURCE_DIR}/tools/bison.simple ${CONTINUATION}
|
|
+ ${BISON_EXECUTABLE} ARGS -o hlslang_tab.c -d -t -v hlslang.y
|
|
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different hlslang_tab.c Gen_hlslang_tab.cpp
|
|
+ COMMAND ${CMAKE_COMMAND} -E remove -f hlslang_tab.c hlslang.output
|
|
+ MAIN_DEPENDENCY hlslang/MachineIndependent/hlslang.y
|
|
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent
|
|
+ COMMENT "Executing Bison on hlslang.y"
|
|
+ )
|
|
+
|
|
+add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent/Gen_hlslang.cpp
|
|
+ COMMAND ${FLEX_EXECUTABLE} ARGS hlslang.l
|
|
+ MAIN_DEPENDENCY hlslang/MachineIndependent/hlslang.l
|
|
+ DEPENDS hlslang/MachineIndependent/hlslang_tab.h
|
|
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent
|
|
+ COMMENT "Executing flex on hlslang.l"
|
|
+ )
|
|
|
|
include_directories(
|
|
- ${CMAKE_CURRENT_SOURCE_DIR}/hlslang
|
|
- ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent
|
|
+ hlslang
|
|
+ hlslang/MachineIndependent
|
|
)
|
|
|
|
add_library(hlsl2glsl
|
|
--
|
|
2.5.0
|
|
|