Remove git submodules in favor of cmake's ExternalProject

This commit is contained in:
Konstantinos Sideris 2018-03-03 13:02:33 +02:00
parent 735d508a29
commit 4e4d2c5ce0
7 changed files with 69 additions and 20 deletions

3
.gitignore vendored
View File

@ -91,3 +91,6 @@ compile_commands.json
*.rpm
*.deb
package.dir
# Dependencies
.third-party

6
.gitmodules vendored
View File

@ -1,6 +0,0 @@
[submodule "libs/lmdbxx"]
path = libs/lmdbxx
url = https://github.com/bendiken/lmdbxx
[submodule "libs/matrix-structs"]
path = libs/matrix-structs
url = https://github.com/mujx/matrix-structs

View File

@ -45,13 +45,6 @@ else()
find_package_handle_standard_args(LMDB DEFAULT_MSG LMDB_INCLUDE_DIR LMDB_LIBRARY)
endif()
if (NOT EXISTS "${CMAKE_SOURCE_DIR}/libs/lmdbxx/.git" OR
NOT EXISTS "${CMAKE_SOURCE_DIR}/libs/matrix-structs/.git")
message(WARNING "The git submodules are not available.")
message(STATUS "Running git submodule update --init --recursive ...")
execute_process(COMMAND git submodule update --init --recursive)
endif()
#
# Discover Qt dependencies.
#
@ -219,10 +212,21 @@ set(SRC_FILES
src/main.cc
)
#
# matrix-structs
#
include(${CMAKE_SOURCE_DIR}/cmake/MatrixStructs.cmake)
include_directories(${MATRIX_STRUCTS_INCLUDE_DIRS})
#
# lmdbxx
#
include(${CMAKE_SOURCE_DIR}/cmake/LMDBXX.cmake)
include_directories(${LMDBXX_INCLUDE_DIRS})
include_directories(include)
include_directories(include/ui)
include_directories(libs/lmdbxx)
include_directories(${LMDB_INCLUDE_DIR})
qt5_wrap_cpp(MOC_HEADERS
@ -317,10 +321,6 @@ endif()
qt5_add_resources(LANG_QRC ${_qrc})
qt5_add_resources(QRC resources/res.qrc)
add_subdirectory(libs/matrix-structs)
include_directories(${matrix_structs_SOURCE_DIR}/include)
include_directories(${matrix_structs_SOURCE_DIR}/deps)
set(COMMON_LIBS matrix_structs Qt5::Widgets Qt5::Network Qt5::Concurrent)
if(APPVEYOR_BUILD)
@ -342,6 +342,8 @@ else()
target_link_libraries (nheko ${NHEKO_LIBS} Qt5::Multimedia)
endif()
add_dependencies(nheko MatrixStructs lmdbxx)
if(UNIX AND NOT APPLE)
install (TARGETS nheko RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
install (FILES "resources/nheko-16.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/16x16/apps" RENAME "nheko.png")

25
cmake/LMDBXX.cmake Normal file
View File

@ -0,0 +1,25 @@
include(ExternalProject)
#
# Build lmdbxx.
#
set(THIRD_PARTY_ROOT ${CMAKE_SOURCE_DIR}/.third-party)
set(LMDBXX_ROOT ${THIRD_PARTY_ROOT}/lmdbxx)
set(LMDBXX_INCLUDE_DIRS ${LMDBXX_ROOT})
ExternalProject_Add(
lmdbxx
GIT_REPOSITORY https://github.com/bendiken/lmdbxx
GIT_TAG 0b43ca87d8cfabba392dfe884eb1edb83874de02
BUILD_IN_SOURCE 1
SOURCE_DIR ${LMDBXX_ROOT}
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
)
include_directories(SYSTEM ${LMDBXX_ROOT})

27
cmake/MatrixStructs.cmake Normal file
View File

@ -0,0 +1,27 @@
include(ExternalProject)
#
# Build matrix-structs.
#
set(THIRD_PARTY_ROOT ${CMAKE_SOURCE_DIR}/.third-party)
set(MATRIX_STRUCTS_ROOT ${THIRD_PARTY_ROOT}/matrix_structs)
set(MATRIX_STRUCTS_INCLUDE_DIRS ${MATRIX_STRUCTS_ROOT}/deps)
ExternalProject_Add(
MatrixStructs
GIT_REPOSITORY https://github.com/mujx/matrix-structs
GIT_TAG 83be1388e632a43f0570857cb79313c09fb3da0b
BUILD_IN_SOURCE 1
SOURCE_DIR ${MATRIX_STRUCTS_ROOT}
CONFIGURE_COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Release ${MATRIX_STRUCTS_ROOT}
BUILD_COMMAND ${CMAKE_COMMAND} --build ${MATRIX_STRUCTS_ROOT}
INSTALL_COMMAND ""
)
include_directories(SYSTEM ${MATRIX_STRUCTS_ROOT}/deps)
include_directories(SYSTEM ${MATRIX_STRUCTS_ROOT}/include)
link_directories(${MATRIX_STRUCTS_ROOT})

@ -1 +0,0 @@
Subproject commit 0b43ca87d8cfabba392dfe884eb1edb83874de02

@ -1 +0,0 @@
Subproject commit 335ece4cbe411393e9179621a299dd96433c1757