From 12f069f1cc2d8760e9d58a5943f716675d86b12c Mon Sep 17 00:00:00 2001 From: Soo-Hwan Na Date: Tue, 30 Jun 2026 07:59:02 +0900 Subject: [PATCH] Use CMake generated export header --- CMakeLists.txt | 22 ++++++++++++++++++---- include/tgbot/export.h | 28 ---------------------------- 2 files changed, 18 insertions(+), 32 deletions(-) delete mode 100644 include/tgbot/export.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 5f0f118ee..b01e18a57 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -76,6 +76,7 @@ endif() target_include_directories(${PROJECT_NAME} PUBLIC $ + $ $) # cpp-httplib is vendored (single header) and fully hidden behind the library # (pimpl), so it is only needed when building the library itself. @@ -83,12 +84,29 @@ target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/third_party) target_link_libraries(${PROJECT_NAME} PUBLIC ${LIB_LIST}) include(GNUInstallDirs) +include(GenerateExportHeader) + +generate_export_header(${PROJECT_NAME} + BASE_NAME TGBOT + EXPORT_MACRO_NAME TGBOT_API + NO_EXPORT_MACRO_NAME TGBOT_NO_EXPORT + DEPRECATED_MACRO_NAME TGBOT_DEPRECATED + STATIC_DEFINE TGBOT_STATIC_DEFINE + INCLUDE_GUARD_NAME TGBOT_EXPORT_H + EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/include/tgbot/export.h) + +if(NOT BUILD_SHARED_LIBS) + target_compile_definitions(${PROJECT_NAME} PUBLIC TGBOT_STATIC_DEFINE) +endif() + install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}-targets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/include/tgbot/export.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/tgbot) install(EXPORT ${PROJECT_NAME}-targets NAMESPACE ${PROJECT_NAME}:: FILE ${PROJECT_NAME}Config.cmake @@ -115,7 +133,3 @@ if(BUILD_DOCUMENTATION) VERBATIM) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/doc/html/ TYPE DOC) endif() - -if(BUILD_SHARED_LIBS) - target_compile_definitions(${PROJECT_NAME} PUBLIC TGBOT_DLL) -endif() diff --git a/include/tgbot/export.h b/include/tgbot/export.h deleted file mode 100644 index 1bfb50352..000000000 --- a/include/tgbot/export.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef TGBOT_EXPORT_H -#define TGBOT_EXPORT_H - -#ifndef TGBOT_API - #ifdef TGBOT_DLL - #if defined _WIN32 || defined __CYGWIN__ - #define TGBOT_HELPER_DLL_EXPORT __declspec(dllexport) - #define TGBOT_HELPER_DLL_IMPORT __declspec(dllimport) - #else - #if __GNUC__ >= 4 - #define TGBOT_HELPER_DLL_EXPORT __attribute__ ((visibility ("default"))) - #define TGBOT_HELPER_DLL_IMPORT __attribute__ ((visibility ("default"))) - #else - #define TGBOT_HELPER_DLL_EXPORT - #define TGBOT_HELPER_DLL_IMPORT - #endif - #endif - #ifdef TgBot_EXPORTS - #define TGBOT_API TGBOT_HELPER_DLL_EXPORT - #else - #define TGBOT_API TGBOT_HELPER_DLL_IMPORT - #endif - #else - #define TGBOT_API - #endif -#endif - -#endif //TGBOT_EXPORT_H