Add a pkg-config file to the project.
I ended up having to edit CMakeLists.txt a bit to get it to work out. So I modified the versioning in version.h to utilize the new variable I made. No functionality is changed, just worked on the build system.
This commit is contained in:
parent
7e1e076cbe
commit
1ae3523fe2
2
.gitignore
vendored
2
.gitignore
vendored
@ -3,3 +3,5 @@ cmake-build-debug
|
||||
cmake-build-release
|
||||
|
||||
CMakeCache\.txt
|
||||
pc/frnetlib.pc
|
||||
include/frnetlib/version.h
|
||||
|
||||
@ -1,6 +1,12 @@
|
||||
cmake_minimum_required(VERSION 3.9)
|
||||
project(frnetlib)
|
||||
include(GNUInstallDirs)
|
||||
set(FRNETLIB_LINK_LIBRARIES "")
|
||||
set(FRNETLIB_LIBFLAGS "-lfrnetlib")
|
||||
|
||||
set(FRNETLIB_VERSION_MAJOR 1)
|
||||
set(FRNETLIB_VERSION_MINOR 1)
|
||||
set(FRNETLIB_VERSION_PATCH 1)
|
||||
|
||||
#Set module path
|
||||
set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules)
|
||||
@ -14,7 +20,7 @@ set(FRNETLIB_BUILD_SHARED_LIBS false CACHE BOOL "Build shared library.")
|
||||
set(MAX_HTTP_HEADER_SIZE "0xC800" CACHE STRING "The maximum allowed HTTP header size in bytes")
|
||||
set(MAX_HTTP_BODY_SIZE "0xA00000" CACHE STRING "The maximum allowed HTTP body size in bytes")
|
||||
set(LISTEN_QUEUE_SIZE "64" CACHE STRING "The listen queue depth for fr::TcpListener/fr::SSLListener")
|
||||
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build type" FORCE)
|
||||
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build type")
|
||||
|
||||
#Configure defines based on user options
|
||||
add_definitions(-DMAX_HTTP_HEADER_SIZE=${MAX_HTTP_HEADER_SIZE})
|
||||
@ -51,6 +57,9 @@ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${CORE_CXX_FLAGS} -O2")
|
||||
|
||||
if(USE_SSL)
|
||||
set(FRNETLIB_LINK_LIBRARIES ${FRNETLIB_LINK_LIBRARIES} ${MBEDTLS_LIBRARIES})
|
||||
if( FRNETLIB_BUILD_SHARED_LIBS )
|
||||
set(FRNETLIB_LIBFLAGS "${FRNETLIB_LIBFLAGS} -lmbedcrypto -lmbedx509")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT MSVC)
|
||||
@ -79,16 +88,12 @@ elseif(APPLE)
|
||||
set( LIB_PATH "lib" )
|
||||
else()
|
||||
set( SHARE_PATH "${CMAKE_INSTALL_PREFIX}/share/FRNETLIB" )
|
||||
|
||||
if( LIB_SUFFIX )
|
||||
set( LIB_PATH "lib${LIB_SUFFIX}" )
|
||||
else()
|
||||
set( LIB_PATH "lib" )
|
||||
endif()
|
||||
set( LIB_PATH "${CMAKE_INSTALL_LIBDIR}" )
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set(FRNETLIB_LINK_LIBRARIES ${FRNETLIB_LINK_LIBRARIES} wsock32 ws2_32)
|
||||
set(FRNETLIB_LIBFLAGS "${FRNETLIB_LIBFLAGS} -lwsock32 -lws2_32")
|
||||
endif()
|
||||
|
||||
target_link_libraries(frnetlib ${FRNETLIB_LINK_LIBRARIES})
|
||||
@ -106,6 +111,16 @@ if(BUILD_EXAMPLES)
|
||||
add_subdirectory(examples)
|
||||
endif()
|
||||
|
||||
configure_file(
|
||||
"${CMAKE_SOURCE_DIR}/include/frnetlib/version.h.cmake.in"
|
||||
"${CMAKE_SOURCE_DIR}/include/frnetlib/version.h"
|
||||
)
|
||||
configure_file(
|
||||
"${CMAKE_SOURCE_DIR}/pc/frnetlib.pc.cmake.in"
|
||||
"${CMAKE_SOURCE_DIR}/pc/frnetlib.pc"
|
||||
@ONLY
|
||||
)
|
||||
|
||||
install(
|
||||
TARGETS frnetlib
|
||||
RUNTIME DESTINATION bin COMPONENT bin
|
||||
@ -114,6 +129,10 @@ install(
|
||||
)
|
||||
|
||||
install(
|
||||
DIRECTORY include
|
||||
DESTINATION .
|
||||
DIRECTORY include/frnetlib
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||
)
|
||||
install(
|
||||
FILES "${CMAKE_CURRENT_SOURCE_DIR}/pc/frnetlib.pc"
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig/"
|
||||
)
|
||||
|
||||
@ -1,18 +0,0 @@
|
||||
//
|
||||
// Created by fred.nicolson on 12/07/18.
|
||||
//
|
||||
|
||||
#ifndef FRNETLIB_VERSION_H
|
||||
#define FRNETLIB_VERSION_H
|
||||
|
||||
//Format: Major | Minor | Patch
|
||||
|
||||
#define FRNETLIB_VERSION_MAJOR 1
|
||||
#define FRNETLIB_VERSION_MINOR 1
|
||||
#define FRNETLIB_VERSION_PATCH 1
|
||||
|
||||
#define FRNETLIB_VERSION_NUMBER (FRNETLIB_VERSION_MAJOR * 100*100 + FRNETLIB_VERSION_MINOR * 100 + FRNETLIB_VERSION_PATCH)
|
||||
#define FRNETLIB_VERSION_STRING "1.1.1"
|
||||
#define FRNETLIB_VERSION_STRING_FULL "frnetlib 1.1.1"
|
||||
|
||||
#endif //FRNETLIB_VERSION_H
|
||||
18
include/frnetlib/version.h.cmake.in
Normal file
18
include/frnetlib/version.h.cmake.in
Normal file
@ -0,0 +1,18 @@
|
||||
//
|
||||
// Created by fred.nicolson on 12/07/18.
|
||||
//
|
||||
|
||||
#ifndef FRNETLIB_VERSION_H
|
||||
#define FRNETLIB_VERSION_H
|
||||
|
||||
//Format: Major | Minor | Patch
|
||||
|
||||
#define FRNETLIB_VERSION_MAJOR @FRNETLIB_VERSION_MAJOR@
|
||||
#define FRNETLIB_VERSION_MINOR @FRNETLIB_VERSION_MINOR@
|
||||
#define FRNETLIB_VERSION_PATCH @FRNETLIB_VERSION_PATCH@
|
||||
|
||||
#define FRNETLIB_VERSION_NUMBER (FRNETLIB_VERSION_MAJOR * 100*100 + FRNETLIB_VERSION_MINOR * 100 + FRNETLIB_VERSION_PATCH)
|
||||
#define FRNETLIB_VERSION_STRING "@FRNETLIB_VERSION_MAJOR@.@FRNETLIB_VERSION_MINOR@.@FRNETLIB_VERSION_PATCH@"
|
||||
#define FRNETLIB_VERSION_STRING_FULL "frnetlib @FRNETLIB_VERSION_MAJOR@.@FRNETLIB_VERSION_MINOR@.@FRNETLIB_VERSION_PATCH@"
|
||||
|
||||
#endif //FRNETLIB_VERSION_H
|
||||
9
pc/frnetlib.pc.cmake.in
Normal file
9
pc/frnetlib.pc.cmake.in
Normal file
@ -0,0 +1,9 @@
|
||||
libdir=@CMAKE_INSTALL_FULL_LIBDIR@
|
||||
includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
|
||||
|
||||
Name: frnetlib
|
||||
Description: Frnetlib, is a cross-platform, small and fast networking library written in C++.
|
||||
URL: https://github.com/Cloaked9000/frnetlib
|
||||
Version: @FRNETLIB_VERSION_MAJOR@.@FRNETLIB_VERSION_MINOR@.@FRNETLIB_VERSION_PATCH@
|
||||
Libs: -L${libdir} @FRNETLIB_LIBFLAGS@
|
||||
Cflags: -I${includedir}
|
||||
Loading…
x
Reference in New Issue
Block a user