summaryrefslogtreecommitdiff
path: root/indra/lscript/lscript_compile/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'indra/lscript/lscript_compile/CMakeLists.txt')
-rw-r--r--indra/lscript/lscript_compile/CMakeLists.txt142
1 files changed, 142 insertions, 0 deletions
diff --git a/indra/lscript/lscript_compile/CMakeLists.txt b/indra/lscript/lscript_compile/CMakeLists.txt
new file mode 100644
index 0000000000..3b144c5338
--- /dev/null
+++ b/indra/lscript/lscript_compile/CMakeLists.txt
@@ -0,0 +1,142 @@
+# -*- cmake -*-
+
+include(00-Common)
+include(LLCommon)
+include(LLMath)
+include(LLMessage)
+include(LLInventory)
+include(LScript)
+
+include(FindCygwin)
+
+find_program(FLEX flex
+ "C:/Program Files/GnuWin32/bin"
+ ${CYGWIN_INSTALL_PATH}/bin
+ /bin
+ /usr/bin
+ /usr/local/bin
+ )
+mark_as_advanced(FLEX)
+
+find_program(BISON bison
+ "C:/Program Files/GnuWin32/bin"
+ ${CYGWIN_INSTALL_PATH}/bin
+ /bin
+ /usr/bin
+ /usr/local/bin
+ )
+mark_as_advanced(BISON)
+
+find_program(M4 m4
+ "C:/Program Files/GnuWin32/bin"
+ ${CYGWIN_INSTALL_PATH}/bin
+ /bin
+ /usr/bin
+ /usr/local/bin
+ )
+mark_as_advanced(M4)
+
+include_directories(
+ ${LLCOMMON_INCLUDE_DIRS}
+ ${LLMATH_INCLUDE_DIRS}
+ ${LLMESSAGE_INCLUDE_DIRS}
+ ${LLINVENTORY_INCLUDE_DIRS}
+ ${LSCRIPT_INCLUDE_DIRS}
+ )
+
+set(lscript_compile_SOURCE_FILES
+ indra.l.cpp
+ indra.y.cpp
+ lscript_alloc.cpp
+ lscript_bytecode.cpp
+ lscript_error.cpp
+ lscript_heap.cpp
+ lscript_resource.cpp
+ lscript_scope.cpp
+ lscript_tree.cpp
+ lscript_typecheck.cpp
+ )
+
+set(lscript_compile_HEADER_FILES
+ CMakeLists.txt
+
+ indra.l
+ indra.y
+
+ ../lscript_alloc.h
+ ../lscript_byteformat.h
+ ../lscript_byteconvert.h
+ ../lscript_http.h
+
+ lscript_error.h
+ lscript_bytecode.h
+ lscript_heap.h
+ lscript_resource.h
+ lscript_scope.h
+ lscript_tree.h
+ lscript_typecheck.h
+ )
+
+set_source_files_properties(${lscript_compile_HEADER_FILES}
+ PROPERTIES HEADER_FILE_ONLY TRUE)
+
+list(APPEND lscript_compile_SOURCE_FILES ${lscript_compile_HEADER_FILES})
+
+add_custom_command(
+ OUTPUT
+ ${CMAKE_CURRENT_BINARY_DIR}/indra.l.cpp
+ COMMAND ${FLEX}
+ ARGS
+ -o${CMAKE_CURRENT_BINARY_DIR}/indra.l.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/indra.l
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/indra.l
+ )
+
+if (WINDOWS)
+ set_source_files_properties(indra.l.cpp
+ PROPERTIES COMPILE_FLAGS /DYY_NO_UNISTD_H)
+endif (WINDOWS)
+
+if (WINDOWS)
+ get_filename_component(M4_PATH ${M4} PATH)
+ add_custom_command(
+ OUTPUT
+ ${CMAKE_CURRENT_BINARY_DIR}/indra.y.cpp
+ ${CMAKE_CURRENT_BINARY_DIR}/indra.y.hpp
+ COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bison.bat
+ ${BISON} ${M4_PATH}
+ ${CMAKE_CURRENT_BINARY_DIR}/indra.y.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/indra.y
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/bison.bat
+ ${CMAKE_CURRENT_SOURCE_DIR}/indra.y
+ )
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/windows)
+else (WINDOWS)
+ add_custom_command(
+ OUTPUT
+ ${CMAKE_CURRENT_BINARY_DIR}/indra.y.cpp
+ ${CMAKE_CURRENT_BINARY_DIR}/indra.y.hpp
+ COMMAND
+ ${BISON}
+ ARGS
+ -d -o ${CMAKE_CURRENT_BINARY_DIR}/indra.y.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/indra.y
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/indra.y
+ )
+endif (WINDOWS)
+
+if (DARWIN)
+ # Mac OS X 10.4 compatibility
+ add_custom_command(
+ OUTPUT
+ ${CMAKE_CURRENT_BINARY_DIR}/indra.y.hpp
+ COMMAND
+ mv
+ ${CMAKE_CURRENT_BINARY_DIR}/indra.y.cpp.h
+ ${CMAKE_CURRENT_BINARY_DIR}/indra.y.hpp
+ )
+endif (DARWIN)
+
+add_library (lscript_compile ${lscript_compile_SOURCE_FILES})