Files
scully/CMakeLists.txt

101 lines
2.6 KiB
CMake
Raw Normal View History

# The scully programming language
#
# Copyright (c) Peter Dahlberg, Markus Hauschild and Florian Sattler, 2013.
# Licensed under the GNU GPL v2.
CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
PROJECT (scully)
SET (SCULLY_VERSION_MAJOR 0)
2013-06-01 14:29:18 +02:00
SET (SCULLY_VERSION_MINOR 2)
SET (SCULLY_VERSION_RELEASE 0)
2013-06-01 14:29:18 +02:00
SET (SCULLY_VERSION_EXTRA "WoC Caturday")
2013-06-01 13:20:18 +02:00
SET (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/)
INCLUDE_DIRECTORIES (${CMAKE_CURRENT_BINARY_DIR})
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/inc)
2013-06-01 13:20:18 +02:00
SET (CMAKE_CXX_FLAGS "-std=c++11")
2013-05-31 22:20:31 +02:00
ADD_EXECUTABLE (lemon grammar/lemon.c)
2013-05-31 23:51:44 +02:00
ADD_EXECUTABLE (makeheaders grammar/makeheaders.c)
ADD_CUSTOM_COMMAND(
2013-06-01 02:27:01 +02:00
COMMAND cp
ARGS ${CMAKE_CURRENT_SOURCE_DIR}/grammar/grammar.y ${CMAKE_CURRENT_BINARY_DIR}
COMMAND cp
ARGS ${CMAKE_CURRENT_SOURCE_DIR}/grammar/lempar.c ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/lemon
ARGS -q -m ${CMAKE_CURRENT_BINARY_DIR}/grammar.y
# ARGS -q ${CMAKE_CURRENT_BINARY_DIR}/grammar.y
COMMAND rm
ARGS ${CMAKE_CURRENT_BINARY_DIR}/lempar.c
COMMAND rm
ARGS ${CMAKE_CURRENT_BINARY_DIR}/grammar.y
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/makeheaders
ARGS ${CMAKE_CURRENT_BINARY_DIR}/grammar.c
COMMAND mv
ARGS ${CMAKE_CURRENT_BINARY_DIR}/grammar.c ${CMAKE_CURRENT_BINARY_DIR}/grammar.cpp
DEPENDS lemon
DEPENDS makeheaders
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/grammar/grammar.y
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/grammar.cpp
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/grammar.h
)
SET_SOURCE_FILES_PROPERTIES(
2013-06-01 02:27:01 +02:00
${CMAKE_CURRENT_BINARY_DIR}/grammar.cpp GENERATED
)
OPTION (SCULLY_DEBUG "Create a debug build")
IF (SCULLY_DEBUG)
2013-06-01 02:27:01 +02:00
ADD_DEFINITIONS ("-g")
ENDIF (SCULLY_DEBUG)
SET(SCULLY_SOURCE
2013-06-01 02:27:01 +02:00
src/test.cpp
2013-06-01 02:27:01 +02:00
src/Token.cpp
2013-05-31 23:51:44 +02:00
2013-06-01 02:27:01 +02:00
src/AST/ASTElement.cpp
src/AST/ASTVisitor.cpp
src/AST/AssignmentExpression.cpp
2013-06-01 03:18:46 +02:00
src/AST/BinOpExpression.cpp
2013-06-01 13:04:53 +02:00
src/AST/CodeGenVisitor.cpp
2013-06-01 02:27:01 +02:00
src/AST/ConstantExpression.cpp
2013-06-01 15:48:28 +02:00
src/AST/LoadExpression.cpp
2013-06-01 02:27:01 +02:00
src/AST/Expression.cpp
2013-06-01 02:45:47 +02:00
src/AST/ExpressionStatement.cpp
2013-06-01 03:02:14 +02:00
src/AST/ForStatement.cpp
2013-06-01 03:10:16 +02:00
src/AST/FunctionCallExpression.cpp
src/AST/FunctionDefinition.cpp
src/AST/IfStatement.cpp
2013-06-01 02:27:01 +02:00
src/AST/ParameterList.cpp
2013-06-01 03:33:38 +02:00
src/AST/PrintVisitor.cpp
src/AST/ReturnStatement.cpp
src/AST/RandomForStatement.cpp
2013-06-01 03:02:21 +02:00
src/AST/RandomIfStatement.cpp
2013-06-01 02:27:01 +02:00
src/AST/Scope.cpp
src/AST/Statement.cpp
src/AST/StatementList.cpp
2013-06-01 02:27:01 +02:00
src/AST/Type.cpp
src/AST/VariableDefinition.cpp
src/AST/ValueList.cpp
2013-06-01 15:48:28 +02:00
src/AST/LoadExpression.cpp
2013-06-01 17:00:39 +02:00
src/AST/BinOp.cpp
2013-06-01 15:48:28 +02:00
2013-05-31 23:51:44 +02:00
2013-06-01 02:27:01 +02:00
${CMAKE_CURRENT_BINARY_DIR}/grammar.cpp
)
2013-06-01 13:20:18 +02:00
FIND_PACKAGE (LLVM REQUIRED)
ADD_DEFINITIONS (${LLVM_CFLAGS})
ADD_EXECUTABLE (scully ${SCULLY_SOURCE})
2013-06-01 13:20:18 +02:00
TARGET_LINK_LIBRARIES (scully ${LLVM_JIT_LIBS})
TARGET_LINK_LIBRARIES (scully ${LLVM_LFLAGS})