-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
43 lines (33 loc) · 1.38 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
cmake_minimum_required(VERSION 3.0.0)
project(PascalToC VERSION 0.1.0 LANGUAGES C CXX)
include(CTest)
enable_testing()
message(STATUS "PROJECT_SOURCE_DIR: ${PROJECT_SOURCE_DIR}")
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
find_package(FLEX REQUIRED)
find_package(BISON REQUIRED)
if(FLEX_FOUND AND BISON_FOUND)
message(STATUS "FLEX AND BISON FOUND")
BISON_TARGET(Parser ${CMAKE_BINARY_DIR}/../scripts/parser.y ${CMAKE_BINARY_DIR}/../scripts/parser.tab.cpp DEFINES_FILE ${CMAKE_BINARY_DIR}/../include/parser.tab.h COMPILE_FLAGS "-t")
FLEX_TARGET(Lexer ${CMAKE_BINARY_DIR}/../scripts/lex.l ${CMAKE_BINARY_DIR}/../scripts/lex.yy.cpp)
ADD_FLEX_BISON_DEPENDENCY(Lexer Parser)
endif()
include_directories(${PROJECT_SOURCE_DIR}/include)
include_directories(${PROJECT_SOURCE_DIR}/scripts)
add_subdirectory(thirdparty)
add_subdirectory(unittest)
add_subdirectory(intetest)
file(GLOB SRC_FILES src/*.cpp)
message(STATUS "SRC_FILES: ${SRC_FILES}")
add_executable(pascc
main.cpp
${SRC_FILES}
${PROJECT_SOURCE_DIR}/scripts/parser.tab.cpp
${PROJECT_SOURCE_DIR}/scripts/lex.yy.cpp
)
set_target_properties(pascc PROPERTIES LINK_SEARCH_START_STATIC ON)
set_target_properties(pascc PROPERTIES LINK_SEARCH_END_STATIC ON)
target_link_options(pascc PRIVATE -static-libgcc -static-libstdc++ -static)
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)