Make get_version constexpr and inline, move version.hpp to include.

Also configure all then include stuff in include/CMakeLists.txt.
This commit is contained in:
tastytea 2020-02-29 02:16:18 +01:00
parent fbaa3a211f
commit b47b3e25a7
Signed by: tastytea
GPG Key ID: CFC39497F1B26E07
6 changed files with 23 additions and 17 deletions

View File

@ -1,3 +1,4 @@
# src must come before include, because the target is declared there.
add_subdirectory(src)
add_subdirectory(include)

View File

@ -1,6 +1,22 @@
include(GNUInstallDirs)
configure_file("version.hpp.in"
"${CMAKE_CURRENT_BINARY_DIR}/version.hpp" @ONLY)
file(GLOB_RECURSE headers_lib *.hpp)
target_sources(${PROJECT_NAME}
PRIVATE "${headers_lib}" "${CMAKE_CURRENT_BINARY_DIR}/version.hpp")
target_include_directories(${PROJECT_NAME}
PUBLIC
"$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/lib/include>"
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
# The trailing / is important.
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/"
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}"
FILES_MATCHING PATTERN "*.hpp")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/version.hpp"
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}")

View File

@ -58,7 +58,10 @@ public:
*
* @since 0.1.0
*/
static string_view get_version();
inline static constexpr string_view get_version()
{
return version;
}
};
} // namespace FediPotato

View File

@ -2,13 +2,10 @@ include(GNUInstallDirs)
find_package(mastodonpp REQUIRED CONFIG)
configure_file ("version.hpp.in"
"${CMAKE_CURRENT_BINARY_DIR}/version.hpp" @ONLY)
add_library(${PROJECT_NAME})
file(GLOB_RECURSE sources_lib *.cpp)
file(GLOB_RECURSE headers_lib ../include/*.hpp)
file(GLOB_RECURSE headers_lib *.hpp)
target_sources(${PROJECT_NAME}
PRIVATE "${sources_lib}" "${headers_lib}")
@ -16,13 +13,6 @@ set_target_properties(${PROJECT_NAME} PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION ${${PROJECT_NAME}_VERSION_MAJOR})
target_include_directories(${PROJECT_NAME}
PRIVATE
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>" # version.hpp
PUBLIC
"$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/lib/include>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
target_link_libraries(${PROJECT_NAME}
PRIVATE mastodonpp::mastodonpp)

View File

@ -15,14 +15,10 @@
*/
#include "fedipotato.hpp"
#include "version.hpp"
namespace FediPotato
{
string_view FediPotato::get_version()
{
return version;
}
} // namespace FediPotato