diff options
Diffstat (limited to 'cmake/elfinfo/CMakeLists.txt')
-rw-r--r-- | cmake/elfinfo/CMakeLists.txt | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/cmake/elfinfo/CMakeLists.txt b/cmake/elfinfo/CMakeLists.txt index 82efcdf..5d246c3 100644 --- a/cmake/elfinfo/CMakeLists.txt +++ b/cmake/elfinfo/CMakeLists.txt @@ -2,12 +2,44 @@ cmake_minimum_required(VERSION 3.2) project(elfinfo CXX ASM) -add_executable(elfinfo elfinfo.cpp) +if (NOT IS_DIRECTORY "${CMAKE_SOURCE_DIR}/antlr4") + message(STATUS "Checking out Antlr...") + execute_process( + COMMAND git clone https://github.com/DanMcLaughlin/antlr4 + COMMAND cd antlr4 && mvn clean install -DskipTests + COMMAND ${CMAKE_COMMAND} -E make_directory antlr4-build + COMMAND cd antlr4-build && cmake ../antlr4 -DCMAKE_INSTALL_PREFIX=../antlr4-install -DCMAKE_INSTALL_PREFIX=../antlr4-install -DCMAKE_BUILD_TYPE=Release + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" + ) +endif () + +#include("${CMAKE_BINARY_DIR}/antlr4/runtime/Cpp/CMakeLists.txt") + +#get_filename_component(ANTLR_INSTALL_DIR "${CMAKE_BINARY_DIR}" ABSOLUTE) + +set(ANTLR_INSTALL_DIR "${CMAKE_SOURCE_DIR}/antlr4-install") + +# include(ExternalProject) +# ExternalProject_Add(antlr-project +# SOURCE_DIR "antlr4/runtime/Cpp" +# DOWNLOAD_COMMAND "" +# UPDATE_COMMAND "" +# CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${ANTLR_INSTALL_DIR} -DCMAKE_BUILD_TYPE=Release) + +include("${ANTLR_INSTALL_DIR}/lib/cmake/Antlr4/Antlr4TargetsShared.cmake") +include("${ANTLR_INSTALL_DIR}/lib/cmake/Antlr4/Antlr4Helpers.cmake") +set(ANTLR4_JAR "${CMAKE_SOURCE_DIR}/antlr4/tool/target/antlr4-4.5.4-SNAPSHOT.jar") + +#antlr4_add_lexer(GnuLdLexer.g4) +#antlr4_add_parser(GnuLdParser.g4) +antlr4_add_target(TARGET GnuLd STATIC LEXER GnuLdLexer.g4 PARSER GnuLdParser.g4) + +add_executable(elfinfo elfinfo.cpp ld.cpp ld.h) target_compile_options(elfinfo PUBLIC "--std=c++14") -target_link_libraries(elfinfo elf) +target_link_libraries(elfinfo elf GnuLd Antlr4::antlr4_shared) INSTALL(TARGETS elfinfo RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib -) + ) |