Skip to content

Commit

Permalink
Revert "Use modern CMake and use FetchContent for msgpack"
Browse files Browse the repository at this point in the history
This reverts commit a17e3fd.
  • Loading branch information
jgehrig committed Dec 7, 2022
1 parent a17e3fd commit 7618e3a
Show file tree
Hide file tree
Showing 6 changed files with 59 additions and 22 deletions.
11 changes: 8 additions & 3 deletions CMakeLists.txt
@@ -1,6 +1,10 @@
cmake_minimum_required(VERSION 3.16)
cmake_policy(SET CMP0048 NEW)
cmake_policy(SET CMP0069 NEW)
cmake_minimum_required(VERSION 2.8.12)
if (POLICY CMP0048)
cmake_policy(SET CMP0048 NEW)
endif (POLICY CMP0048)
if (POLICY CMP0069)
cmake_policy(SET CMP0069 NEW)
endif (POLICY CMP0069)

# Neovim-Qt Version, used by --version update before release
# 9999 = Development Pre-Release
Expand Down Expand Up @@ -145,6 +149,7 @@ if(USE_SYSTEM_MSGPACK)
else()
add_subdirectory(third-party)
endif()
include_directories(${MSGPACK_INCLUDE_DIRS})

if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
add_definitions(-DQT_NO_DEBUG_OUTPUT)
Expand Down
17 changes: 17 additions & 0 deletions cmake/FindMsgpack.cmake
@@ -0,0 +1,17 @@
include(CheckLibraryExists)

find_path(MSGPACK_INCLUDE_DIR
NAMES msgpack.h
)

find_library(MSGPACK_LIBRARY
NAMES msgpack msgpackc libmsgpack.a libmsgpackc.a
)

mark_as_advanced(MSGPACK_INCLUDE_DIR MSGPACK_LIBRARY)
set(MSGPACK_LIBRARIES ${MSGPACK_LIBRARY})
set(MSGPACK_INCLUDE_DIRS ${MSGPACK_INCLUDE_DIR})

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Msgpack DEFAULT_MSG
MSGPACK_LIBRARY MSGPACK_INCLUDE_DIR)
2 changes: 1 addition & 1 deletion src/CMakeLists.txt
Expand Up @@ -22,6 +22,6 @@ if(WIN32)
endif()

add_library(neovim-qt STATIC ${NEOVIM_QT_SOURCES})
target_link_libraries(neovim-qt Qt5::Network msgpackc-static)
target_link_libraries(neovim-qt Qt5::Network ${MSGPACK_LIBRARIES})

add_subdirectory(gui)
2 changes: 1 addition & 1 deletion src/gui/CMakeLists.txt
Expand Up @@ -67,7 +67,7 @@ add_executable(nvim-qt WIN32 MACOSX_BUNDLE main.cpp
${RES_FILE}
${ICON_PATH})

target_link_libraries(nvim-qt ${QTLIBS} neovim-qt-gui)
target_link_libraries(nvim-qt ${QTLIBS} ${MSGPACK_LIBRARIES} neovim-qt-gui)

if(APPLE)
add_custom_command(TARGET nvim-qt COMMAND ${CMAKE_COMMAND} -E copy_directory
Expand Down
7 changes: 4 additions & 3 deletions src/gui/shellwidget/CMakeLists.txt
@@ -1,6 +1,7 @@
cmake_minimum_required(VERSION 3.16)
cmake_policy(SET CMP0048 NEW)

cmake_minimum_required(VERSION 2.8.12)
if (POLICY CMP0048)
cmake_policy(SET CMP0048 NEW)
endif (POLICY CMP0048)
project(qshellwidget)

set(CMAKE_INCLUDE_CURRENT_DIR ON)
Expand Down
42 changes: 28 additions & 14 deletions third-party/CMakeLists.txt
@@ -1,20 +1,34 @@
# This is a minimal CMake project to fetch and build third party
# dependencies
cmake_minimum_required(VERSION 3.16)
cmake_minimum_required(VERSION 2.8.12)
if (POLICY CMP0048)
cmake_policy(SET CMP0048 NEW)
endif (POLICY CMP0048)
project(neovim-qt-deps)

cmake_policy(SET CMP0048 NEW)
if (POLICY CMP0135)
cmake_policy(SET CMP0135 NEW)
endif()
#
# Get Msgpack
#
set(MSGPACK_VERSION 3.2.0)
set(MSGPACK_URL https://github.com/msgpack/msgpack-c/archive/cpp-${MSGPACK_VERSION}.tar.gz)
set(MSGPACK_SHA256 ff865a36bad5c72b8e7ebc4b7cf5f27a820fce4faff9c571c1791e3728355a39)

project(neovim-qt-deps)
message(STATUS "Downloading Msgpack...")
set(MSGPACK_TARBALL msgpack-${MSGPACK_VERSION}.tar.gz)
file(DOWNLOAD ${MSGPACK_URL} ${CMAKE_CURRENT_SOURCE_DIR}/${MSGPACK_TARBALL}
INACTIVITY_TIMEOUT 30
EXPECTED_HASH SHA256=${MSGPACK_SHA256})
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xfz ${MSGPACK_TARBALL}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
RESULT_VARIABLE rv)
if(NOT rv EQUAL 0)
message(FATAL_ERROR "Failed to extract ${MSGPACK_TARBALL}")
endif()

include(FetchContent)
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR})
set(MSGPACK_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/msgpack-c-cpp-${MSGPACK_VERSION}/)
add_subdirectory(${MSGPACK_SOURCE_DIR} EXCLUDE_FROM_ALL)

set(MSGPACK_VERSION 3.2.0)
FetchContent_Declare(
msgpackc
URL "https://github.com/msgpack/msgpack-c/archive/cpp-${MSGPACK_VERSION}.tar.gz"
URL_HASH SHA256=ff865a36bad5c72b8e7ebc4b7cf5f27a820fce4faff9c571c1791e3728355a39
)
FetchContent_MakeAvailable(msgpackc)
# Similar enough to FindMsgpack
set(MSGPACK_INCLUDE_DIRS ${MSGPACK_SOURCE_DIR}/include PARENT_SCOPE)
set(MSGPACK_LIBRARIES msgpackc-static PARENT_SCOPE)

0 comments on commit 7618e3a

Please sign in to comment.