Files
vb6-parser/CMakeLists.txt
Federico Aponte 15320a8f46 First commit
2022-01-16 01:14:05 +01:00

117 lines
2.6 KiB
CMake

cmake_minimum_required(VERSION 3.10)
project(vb6_parser)
set(CMAKE_CXX_STANDARD 17)
#------------------------------------------------------------------------------
# see https://google.github.io/googletest/quickstart-cmake.html
include(FetchContent)
FetchContent_Declare(
googletest
URL https://github.com/google/googletest/archive/609281088cfefc76f9d0ce82e1ff6c30cc3591e5.zip
)
# for Windows: prevent overriding the parent project's compiler/linker settings
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(googletest)
#------------------------------------------------------------------------------
add_compile_options($<$<CXX_COMPILER_ID:GNU,Clang>:-Wall> $<$<CXX_COMPILER_ID:GNU,Clang>:-Wextra>)
enable_testing()
#find_package(GTest CONFIG REQUIRED) # GoogleTest with vcpkg
find_package(Threads REQUIRED)
find_package(Boost REQUIRED QUIET COMPONENTS system)
add_library(vb6_parser_lib
src/raw_ast_printer.cpp
src/raw_ast_printer.hpp
src/color_console.cpp
src/color_console.hpp
src/cpp_ast_printer.cpp
src/cpp_ast_printer.hpp
src/vb6_ast.hpp
src/vb6_ast_adapt.hpp
src/vb6_config.hpp
src/vb6_error_handler.hpp
src/vb6_parser.cpp
src/vb6_parser.hpp
src/vb6_parser_def.hpp
src/vb6_parser_functions.cpp
src/vb6_parser_helper.cpp
src/vb6_parser_keywords.hpp
src/vb6_parser_operators.hpp
src/vb6_parser_statements.cpp
src/vb6_parser_statements_def.hpp
src/vb6_ast_printer.cpp
src/vb6_ast_printer.hpp
src/visual_basic_x3.hpp
)
target_compile_definitions(vb6_parser_lib
PRIVATE
-DBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-DBOOST_MPL_LIMIT_LIST_SIZE=30
)
add_executable(vb6_parser
src/vb6_parser_main.cpp
src/vb6_test1.cpp
src/vb6_test2.cpp
)
target_compile_definitions(vb6_parser
PRIVATE
-DBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-DBOOST_MPL_LIMIT_LIST_SIZE=30
)
target_link_libraries(vb6_parser
PRIVATE
vb6_parser_lib
Boost::system
Threads::Threads
)
# ---- test
add_executable(vb6_parser_test
src/test_gosub.cpp
src/test_grammar_helper.hpp
src/vb6_parser_statements_test.cpp
src/vb6_parser_test.cpp
src/vb6_parser_test_main.cpp
)
target_compile_definitions(vb6_parser_test
PRIVATE
-DBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-DBOOST_MPL_LIMIT_LIST_SIZE=30
)
target_link_libraries(vb6_parser_test
PRIVATE
vb6_parser_lib
gtest_main
Boost::system
Threads::Threads
)
#[[
# GoogleTest with vcpkg, probably not a good idea
target_link_libraries(vb6_parser_test
PRIVATE
vb6_parser_lib
GTest::gtest
GTest::gtest_main
GTest::gmock
GTest::gmock_main
Boost::system
Threads::Threads
)
#]]
include(GoogleTest)
gtest_discover_tests(vb6_parser_test)
#add_test(AllTestsInMain vb6_parser_test)