Skip to content

Commit

Permalink
Merge branch 'external-antlr' of git://github.com/pinotree/sqlitebrow…
Browse files Browse the repository at this point in the history
…ser into pinotree-external-antlr
  • Loading branch information
rp- committed May 5, 2015
2 parents ffe5254 + f4587f7 commit 48b73b1
Show file tree
Hide file tree
Showing 4 changed files with 90 additions and 9 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ compiler:
before_install:
- sudo add-apt-repository ppa:likemartinma/devel -y
- sudo apt-get update -qq
- sudo apt-get install -qq libqt4-dev libsqlite3-dev libsqlcipher-dev
- sudo apt-get install -qq libqt4-dev libsqlite3-dev libsqlcipher-dev libantlr-dev

script:
- mkdir build
Expand Down
33 changes: 28 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
project(sqlitebrowser)
cmake_minimum_required(VERSION 2.8.7)

set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}")

OPTION(USE_QT5 FALSE "Build with qt5")
OPTION(ENABLE_TESTING FALSE "Enable the unit tests")

Expand All @@ -22,12 +24,17 @@ if(WIN32 AND MSVC)
set(CMAKE_PREFIX_PATH "${QT5_PATH};${SQLITE3_PATH}")
endif()

set(ANTLR_DIR libs/antlr-2.7.7)
find_package(Antlr2)

set(QHEXEDIT_DIR libs/qhexedit)
set(QCUSTOMPLOT_DIR libs/qcustomplot-source)
set(QSCINTILLA_DIR libs/qscintilla/Qt4Qt5)

add_subdirectory(${ANTLR_DIR})
if(ANTLR2_FOUND)
else()
set(ANTLR_DIR libs/antlr-2.7.7)
add_subdirectory(${ANTLR_DIR})
endif()
add_subdirectory(${QHEXEDIT_DIR})
add_subdirectory(${QCUSTOMPLOT_DIR})
add_subdirectory(${QSCINTILLA_DIR})
Expand Down Expand Up @@ -214,12 +221,16 @@ endif()

include_directories(
"${CMAKE_CURRENT_BINARY_DIR}"
${ANTLR_DIR}
${QHEXEDIT_DIR}
${QCUSTOMPLOT_DIR}
${QSCINTILLA_DIR}
${ADDITIONAL_INCLUDE_PATHS}
src)
if(ANTLR2_FOUND)
include_directories(${ANTLR2_INCLUDE_DIRS})
else()
include_directories(${ANTLR_DIR})
endif()

add_executable(${PROJECT_NAME}
${SQLB_HDR}
Expand All @@ -234,23 +245,35 @@ if(USE_QT5)
qt5_use_modules(${PROJECT_NAME} Gui Widgets Network Test PrintSupport)
set(QT_LIBRARIES "")
endif()
add_dependencies(${PROJECT_NAME} antlr qhexedit qcustomplot qscintilla2)
add_dependencies(${PROJECT_NAME} qhexedit qcustomplot qscintilla2)
if(ANTLR2_FOUND)
else()
add_dependencies(${PROJECT_NAME} antlr)
endif()

link_directories(
"${CMAKE_CURRENT_BINARY_DIR}/${ANTLR_DIR}"
"${CMAKE_CURRENT_BINARY_DIR}/${QHEXEDIT_DIR}"
"${CMAKE_CURRENT_BINARY_DIR}/${QCUSTOMPLOT_DIR}"
"${CMAKE_CURRENT_BINARY_DIR}/${QSCINTILLA_DIR}")
if(ANTLR2_FOUND)
else()
link_directories("${CMAKE_CURRENT_BINARY_DIR}/${ANTLR_DIR}")
endif()

target_link_libraries(${PROJECT_NAME}
antlr
qhexedit
qcustomplot
qscintilla2
${QT_LIBRARIES}
${WIN32_STATIC_LINK}
${LIBSQLITE}
${ADDITIONAL_LIBS})
if(ANTLR2_FOUND)
target_link_libraries(${PROJECT_NAME} ${ANTLR2_LIBRARIES})
else()
target_link_libraries(${PROJECT_NAME} antlr)
endif()

if(WIN32 AND MSVC)
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE")
Expand Down
50 changes: 50 additions & 0 deletions cmake/FindAntlr2.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# - try to find Antlr v2
# Once done this will define:
#
# ANTLR2_FOUND - system has antlr2
# ANTLR2_INCLUDE_DIRS - the include directories for antlr2
# ANTLR2_LIBRARIES - Link these to use antl2
# ANTLR2_EXECUTABLE - The 'antlr' or 'runantlr' executable

# Copyright (C) 2015, Pino Toscano, <toscano.pino@tiscali.it>
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 3. The name of the author may not be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


find_library(ANTLR2_LIBRARY antlr)
set(ANTLR2_LIBRARIES "${ANTLR2_LIBRARY}")

find_path(ANTLR2_INCLUDE_DIR antlr/AST.hpp)
set(ANTLR2_INCLUDE_DIRS "${ANTLR2_INCLUDE_DIR}")

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Antlr2 DEFAULT_MSG ANTLR2_LIBRARIES ANTLR2_INCLUDE_DIRS)

find_program(ANTLR2_EXECUTABLE NAMES runantlr runantlr2 antlr)

mark_as_advanced(
ANTLR2_INCLUDE_DIRS
ANTLR2_LIBRARIES
ANTLR2_EXECUTABLE
)
14 changes: 11 additions & 3 deletions src/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ else()
add_definitions(${QT_DEFINITIONS})
endif()

include_directories("${CMAKE_CURRENT_BINARY_DIR}" "${ANTLR_DIR}" ..)
include_directories("${CMAKE_CURRENT_BINARY_DIR}" ..)

# test-sqlobjects

Expand Down Expand Up @@ -58,8 +58,16 @@ if(USE_QT5)
set(QT_LIBRARIES "")
endif()

add_dependencies(test-sqlobjects antlr)
target_link_libraries(test-sqlobjects antlr ${QT_LIBRARIES} ${LIBSQLITE})
if(ANTLR2_FOUND)
else()
add_dependencies(test-sqlobjects antlr)
endif()
target_link_libraries(test-sqlobjects ${QT_LIBRARIES} ${LIBSQLITE})
if(ANTLR2_FOUND)
target_link_libraries(test-sqlobjects ${ANTLR2_LIBRARIES})
else()
target_link_libraries(test-sqlobjects antlr)
endif()
add_test(test-sqlobjects test-sqlobjects)

# test-import
Expand Down

0 comments on commit 48b73b1

Please sign in to comment.