Skip to content
This repository has been archived by the owner on Jun 15, 2024. It is now read-only.

add installer scripts #19

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 61 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.0)
cmake_minimum_required(VERSION 3.16)
project(libnbt++
VERSION 2.5)

Expand Down Expand Up @@ -37,7 +37,12 @@ if(NBT_USE_ZLIB)
endif()

add_library(nbt++ ${NBT_SOURCES})
target_include_directories(nbt++ PUBLIC include ${CMAKE_CURRENT_BINARY_DIR})
target_include_directories(nbt++ PRIVATE
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/libnbt++>")

target_include_directories(nbt++ PUBLIC
"$<INSTALL_INTERFACE:include>")

if(NBT_USE_ZLIB)
target_link_libraries(nbt++ ${ZLIB_LIBRARY})
Expand All @@ -57,3 +62,57 @@ if(NBT_BUILD_TESTS)
enable_testing()
add_subdirectory(test)
endif()


#
# installation
#

set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")

set(config_install_dir "lib/cmake/${PROJECT_NAME}")
set(include_install_dir "include")
set(lib_install_dir "lib")
set(pkgconfig_install_dir "lib/pkgconfig")

set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake")
set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake")
set(pkg_config "${generated_dir}/${PROJECT_NAME}.pc")
set(targets_export_name "${PROJECT_NAME}Targets")
set(namespace "libnbt++::")

include(CMakePackageConfigHelpers)
write_basic_package_version_file(
"${version_config}" COMPATIBILITY SameMajorVersion
)

configure_file("cmake/libnbt++.pc.in" "${pkg_config}" @ONLY)

configure_package_config_file(
"cmake/Config.cmake.in"
"${project_config}"
INSTALL_DESTINATION "${config_install_dir}"
)

install(TARGETS nbt++
EXPORT "${targets_export_name}"
INCLUDES DESTINATION "${include_install_dir}"
ARCHIVE DESTINATION "${lib_install_dir}")

install(DIRECTORY include/libnbt++ DESTINATION "${include_install_dir}")

install(
FILES "${project_config}" "${version_config}"
DESTINATION "${config_install_dir}"
)

install(
FILES "${pkg_config}"
DESTINATION "${pkgconfig_install_dir}"
)

install(
EXPORT "${targets_export_name}"
NAMESPACE "${namespace}"
DESTINATION "${config_install_dir}"
)
1 change: 1 addition & 0 deletions cmake/Config.cmake.in
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
include("${CMAKE_CURRENT_LIST_DIR}/@[email protected]")
6 changes: 6 additions & 0 deletions cmake/libnbt++.pc.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
prefix=@CMAKE_INSTALL_PREFIX@
includedir=${prefix}/include

Name: @PROJECT_NAME@
Description: libnbt++ by lijfa-ag
Version: @PROJECT_VERSION@
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#ifndef IZLIBSTREAM_H_INCLUDED
#define IZLIBSTREAM_H_INCLUDED

#include "io/zlib_streambuf.h"
#include <libnbt++/io/zlib_streambuf.h>
#include <istream>
#include <zlib.h>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#ifndef OZLIBSTREAM_H_INCLUDED
#define OZLIBSTREAM_H_INCLUDED

#include "io/zlib_streambuf.h"
#include <libnbt++/io/zlib_streambuf.h>
#include <ostream>
#include <zlib.h>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@
#ifndef STREAM_READER_H_INCLUDED
#define STREAM_READER_H_INCLUDED

#include "endian_str.h"
#include "tag.h"
#include "tag_compound.h"
#include <libnbt++/endian_str.h>
#include <libnbt++/tag.h>
#include <libnbt++/tag_compound.h>
#include <iosfwd>
#include <memory>
#include <stdexcept>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
#ifndef STREAM_WRITER_H_INCLUDED
#define STREAM_WRITER_H_INCLUDED

#include "tag.h"
#include "endian_str.h"
#include <libnbt++/tag.h>
#include <libnbt++/endian_str.h>
#include <iosfwd>
#include <string>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#include <streambuf>
#include <vector>
#include <zlib.h>
#include "nbt_export.h"
#include <libnbt++/nbt_export.h>

namespace zlib
{
Expand Down
File renamed without changes.
6 changes: 6 additions & 0 deletions include/libnbt++/nbt_export.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#pragma once

#ifndef NBT_EXPORT

#define NBT_EXPORT __attribute__((visibility("default")))
#endif
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.