Files
triton/CMakeLists.txt

45 lines
1.3 KiB
CMake
Raw Normal View History

2019-01-03 17:14:54 -05:00
cmake_minimum_required(VERSION 2.8)
2018-12-16 16:15:40 -05:00
project(TDL)
include(CTest)
# FLEX/YACC
2018-12-15 22:29:36 -05:00
find_package(BISON)
find_package(FLEX)
BISON_TARGET(Parser ${CMAKE_CURRENT_SOURCE_DIR}/include/ast/parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser.cpp)
FLEX_TARGET(Lexer ${CMAKE_CURRENT_SOURCE_DIR}/include/ast/scanner.l ${CMAKE_CURRENT_BINARY_DIR}/scanner.cpp)
2018-12-15 22:29:36 -05:00
get_filename_component(BISON_Parser_INCLUDE_DIRECTORIES ${BISON_Parser_OUTPUT_HEADER} DIRECTORY)
include_directories(${BISON_Parser_INCLUDE_DIRECTORIES})
2018-12-16 16:15:40 -05:00
2019-01-03 17:14:54 -05:00
# LLVM
find_package(LLVM REQUIRED CONFIG)
include_directories(${LLVM_INCLUDE_DIRS})
add_definitions(${LLVM_DEFINITIONS})
llvm_map_components_to_libnames(llvm_libs support core irreader)
2018-12-16 16:15:40 -05:00
#Default build type
if(NOT CMAKE_BUILD_TYPE)
message(STATUS "Default build type: Release")
set(CMAKE_BUILD_TYPE "Release")
endif()
# Gather headers for cmake-based IDEs
2018-12-17 10:43:49 -05:00
file( GLOB_RECURSE ALL_SRC *.cpp *.hpp *.h *.py *.y *.l)
2018-12-16 16:15:40 -05:00
add_custom_target( ALL SOURCES ${ALL_SRC} )
# Compiler flags
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
2019-01-03 17:14:54 -05:00
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LLVM_CXXFLAGS} -std=c++11")
2018-12-16 16:15:40 -05:00
2019-01-03 17:14:54 -05:00
# TDL
2018-12-16 16:15:40 -05:00
file(GLOB_RECURSE LIBTDL_SRC lib/*.cpp)
add_library(tdl SHARED ${LIBTDL_SRC} ${BISON_Parser_OUTPUTS} ${FLEX_Lexer_OUTPUTS})
2019-01-03 17:14:54 -05:00
target_link_libraries(tdl ${llvm_libs})
2018-12-16 16:15:40 -05:00
# Examples
add_subdirectory(examples)