This is an automated email from the ASF dual-hosted git repository.

pnoltes pushed a commit to branch feature/export_headers
in repository https://gitbox.apache.org/repos/asf/celix.git

commit 35ecfceb4855be5c0e76bdae0fbad54cb520ab79
Author: Pepijn Noltes <pepijnnol...@gmail.com>
AuthorDate: Sun Apr 16 10:34:17 2023 +0200

    Add export header for etcdlib
---
 CMakeLists.txt                     |  3 +++
 libs/dfi/include/dyn_interface.h   | 24 +++++++++++------------
 libs/dfi/include/json_rpc.h        |  7 ++++---
 libs/dfi/include/json_serializer.h |  9 +++++----
 libs/etcdlib/CMakeLists.txt        | 39 ++++++++++++++++++++++----------------
 libs/etcdlib/api/etcd.h            | 25 ++++++++++++------------
 libs/etcdlib/api/etcdlib.h         | 23 +++++++++++-----------
 libs/utils/CMakeLists.txt          | 17 +++++++----------
 8 files changed, 79 insertions(+), 68 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f75072df..dbc06c44 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -196,6 +196,9 @@ include(CheckLinkerFlag)
 check_linker_flag(CXX LINKER:--wrap,celix_nonexistent_symbol 
LINKER_WRAP_SUPPORTED)
 cmake_pop_check_state()
 
+#Add generate_export_header to cmake
+include(GenerateExportHeader)
+
 #Libraries and Launcher
 add_subdirectory(libs)
 
diff --git a/libs/dfi/include/dyn_interface.h b/libs/dfi/include/dyn_interface.h
index 2e080fa7..6927485a 100644
--- a/libs/dfi/include/dyn_interface.h
+++ b/libs/dfi/include/dyn_interface.h
@@ -24,8 +24,8 @@
 #include "dyn_type.h"
 #include "dyn_function.h"
 #include "dfi_log_util.h"
-
 #include "celix_version.h"
+#include "celix_df_export.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -57,20 +57,20 @@ struct method_entry {
     TAILQ_ENTRY(method_entry) entries; 
 };
 
-int dynInterface_parse(FILE *descriptor, dyn_interface_type **out);
-void dynInterface_destroy(dyn_interface_type *intf);
+CELIX_DFI_EXPORT int dynInterface_parse(FILE *descriptor, dyn_interface_type 
**out);
+CELIX_DFI_EXPORT void dynInterface_destroy(dyn_interface_type *intf);
 
-int dynInterface_getName(dyn_interface_type *intf, char **name);
-int dynInterface_getVersion(dyn_interface_type *intf, celix_version_t** 
version);
-int dynInterface_getVersionString(dyn_interface_type *intf, char **version);
-int dynInterface_getHeaderEntry(dyn_interface_type *intf, const char *name, 
char **value);
-int dynInterface_getAnnotationEntry(dyn_interface_type *intf, const char 
*name, char **value);
-int dynInterface_methods(dyn_interface_type *intf, struct methods_head **list);
-int dynInterface_nrOfMethods(dyn_interface_type *intf);
+CELIX_DFI_EXPORT int dynInterface_getName(dyn_interface_type *intf, char 
**name);
+CELIX_DFI_EXPORT int dynInterface_getVersion(dyn_interface_type *intf, 
celix_version_t** version);
+CELIX_DFI_EXPORT int dynInterface_getVersionString(dyn_interface_type *intf, 
char **version);
+CELIX_DFI_EXPORT int dynInterface_getHeaderEntry(dyn_interface_type *intf, 
const char *name, char **value);
+CELIX_DFI_EXPORT int dynInterface_getAnnotationEntry(dyn_interface_type *intf, 
const char *name, char **value);
+CELIX_DFI_EXPORT int dynInterface_methods(dyn_interface_type *intf, struct 
methods_head **list);
+CELIX_DFI_EXPORT int dynInterface_nrOfMethods(dyn_interface_type *intf);
 
 // Avpr parsing
-dyn_interface_type * dynInterface_parseAvprWithStr(const char * avpr);
-dyn_interface_type * dynInterface_parseAvpr(FILE * avprStream);
+CELIX_DFI_DEPRECATED_EXPORT dyn_interface_type * 
dynInterface_parseAvprWithStr(const char * avpr);
+CELIX_DFI_DEPRECATED_EXPORT dyn_interface_type * dynInterface_parseAvpr(FILE * 
avprStream);
 
 #ifdef __cplusplus
 }
diff --git a/libs/dfi/include/json_rpc.h b/libs/dfi/include/json_rpc.h
index 363d051e..68783fa8 100644
--- a/libs/dfi/include/json_rpc.h
+++ b/libs/dfi/include/json_rpc.h
@@ -25,6 +25,7 @@
 #include "dyn_type.h"
 #include "dyn_function.h"
 #include "dyn_interface.h"
+#include "celix_df_export.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -33,11 +34,11 @@ extern "C" {
 //logging
 DFI_SETUP_LOG_HEADER(jsonRpc);
 
-int jsonRpc_call(dyn_interface_type *intf, void *service, const char *request, 
char **out);
+CELIX_DFI_EXPORT int jsonRpc_call(dyn_interface_type *intf, void *service, 
const char *request, char **out);
 
 
-int jsonRpc_prepareInvokeRequest(dyn_function_type *func, const char *id, void 
*args[], char **out);
-int jsonRpc_handleReply(dyn_function_type *func, const char *reply, void 
*args[], int *rsErrno);
+CELIX_DFI_EXPORT int jsonRpc_prepareInvokeRequest(dyn_function_type *func, 
const char *id, void *args[], char **out);
+CELIX_DFI_EXPORT int jsonRpc_handleReply(dyn_function_type *func, const char 
*reply, void *args[], int *rsErrno);
 
 #ifdef __cplusplus
 }
diff --git a/libs/dfi/include/json_serializer.h 
b/libs/dfi/include/json_serializer.h
index 7ff1d610..91311dcf 100644
--- a/libs/dfi/include/json_serializer.h
+++ b/libs/dfi/include/json_serializer.h
@@ -25,6 +25,7 @@
 #include "dyn_type.h"
 #include "dyn_function.h"
 #include "dyn_interface.h"
+#include "celix_df_export.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -33,11 +34,11 @@ extern "C" {
 //logging
 DFI_SETUP_LOG_HEADER(jsonSerializer);
 
-int jsonSerializer_deserialize(dyn_type *type, const char *input, size_t 
length, void **result);
-int jsonSerializer_deserializeJson(dyn_type *type, json_t *input, void 
**result);
+CELIX_DFI_EXPORT int jsonSerializer_deserialize(dyn_type *type, const char 
*input, size_t length, void **result);
+CELIX_DFI_EXPORT int jsonSerializer_deserializeJson(dyn_type *type, json_t 
*input, void **result);
 
-int jsonSerializer_serialize(dyn_type *type, const void* input, char **output);
-int jsonSerializer_serializeJson(dyn_type *type, const void* input, json_t 
**out);
+CELIX_DFI_EXPORT int jsonSerializer_serialize(dyn_type *type, const void* 
input, char **output);
+CELIX_DFI_EXPORT int jsonSerializer_serializeJson(dyn_type *type, const void* 
input, json_t **out);
 
 #ifdef __cplusplus
 }
diff --git a/libs/etcdlib/CMakeLists.txt b/libs/etcdlib/CMakeLists.txt
index 885bb38a..760b8bad 100644
--- a/libs/etcdlib/CMakeLists.txt
+++ b/libs/etcdlib/CMakeLists.txt
@@ -54,32 +54,39 @@ endif ()
 
 if (CELIX_ETCDLIB OR ETCDLIB_STANDALONE)
     find_package(jansson REQUIRED)
-    add_library(etcdlib SHARED
-            src/etcd.c
-            )
-    target_include_directories(etcdlib PUBLIC
-            $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/api>
-            )
-    target_include_directories(etcdlib PRIVATE src)
 
-    set_target_properties(etcdlib PROPERTIES SOVERSION 1)
-    set_target_properties(etcdlib PROPERTIES VERSION 1.0.0)
+    add_library(etcdlib SHARED src/etcd.c)
+    target_include_directories(etcdlib PUBLIC 
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/api>)
+    target_include_directories(etcdlib PRIVATE src)
+    set_target_properties(etcdlib
+            PROPERTIES
+                VERSION 1.0.0
+                SOVERSION 1
+                C_VISIBILITY_PRESET hidden
+                VISIBILITY_INLINES_HIDDEN ON
+    )
     target_link_libraries(etcdlib PUBLIC CURL::libcurl jansson::jansson 
${CELIX_OPTIONAL_EXTRA_LIBS})
 
-    add_library(etcdlib_static STATIC
-            src/etcd.c
-            )
-    target_include_directories(etcdlib_static PUBLIC
-            $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/api>
-            )
+    generate_export_header(etcdlib
+            BASE_NAME "ETCDLIB"
+            EXPORT_FILE_NAME 
"${CMAKE_BINARY_DIR}/celix/gen/includes/etcdlib/etcdlib_export.h")
+    target_include_directories(etcdlib PUBLIC 
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/celix/gen/includes/etcdlib>)
+
+
+    add_library(etcdlib_static STATIC src/etcd.c)
+    target_include_directories(etcdlib_static PUBLIC 
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/api>)
     target_include_directories(etcdlib_static PRIVATE src)
-    set_target_properties(etcdlib_static PROPERTIES "SOVERSION" 1)
+    set_target_properties(etcdlib_static
+            PROPERTIES
+                POSITION_INDEPENDENT_CODE 1
+                OUTPUT_NAME "celix_etcdlib_static")
     target_link_libraries(etcdlib_static PUBLIC CURL::libcurl jansson::jansson 
${CELIX_OPTIONAL_EXTRA_LIBS})
 
     add_executable(etcdlib_test 
${CMAKE_CURRENT_SOURCE_DIR}/test/etcdlib_test.c)
     target_link_libraries(etcdlib_test PRIVATE etcdlib_static CURL::libcurl 
jansson::jansson)
 
     install(DIRECTORY api/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/etcdlib 
COMPONENT ${ETCDLIB_CMP})
+    install(DIRECTORY ${CMAKE_BINARY_DIR}/celix/gen/includes/etcdlib/ 
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/etcdlib COMPONENT ${ETCDLIB_CMP})
     if (NOT COMMAND celix_subproject)
         install(TARGETS etcdlib etcdlib_static DESTINATION 
${CMAKE_INSTALL_LIBDIR} COMPONENT ${ETCDLIB_CMP}
                 INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/etcdlib)
diff --git a/libs/etcdlib/api/etcd.h b/libs/etcdlib/api/etcd.h
index 4b6fe2fd..6555c6b4 100644
--- a/libs/etcdlib/api/etcd.h
+++ b/libs/etcdlib/api/etcd.h
@@ -26,8 +26,7 @@ extern "C"
 #endif
 
 #include "etcdlib.h"
-
-#define DEP_ATTRIBUTE __attribute__((deprecated("etcd_ call are placed by 
etcdlib_ calls, use etcdlib.h instead of etcd.h")))
+#include "etcdlib_export.h"
 
 /**
  * @desc Initialize the ETCD-LIB  with the server/port where Etcd can be 
reached.
@@ -36,7 +35,7 @@ extern "C"
  * @param int flags. bitwise flags to control etcdlib initialization. 
  * @return 0 on success, non zero otherwise.
  */
-int etcd_init(const char* server, int port, int flags) DEP_ATTRIBUTE;
+ETCDLIB_DEPRECATED_EXPORT int etcd_init(const char* server, int port, int 
flags);
 
 /**
  * @desc Retrieve a single value from Etcd.
@@ -45,7 +44,7 @@ int etcd_init(const char* server, int port, int flags) 
DEP_ATTRIBUTE;
  * @param int* modifiedIndex. If not NULL the Etcd-index of the last modified 
value.
  * @return 0 on success, non zero otherwise
  */
-int etcd_get(const char* key, char** value, int* modifiedIndex) DEP_ATTRIBUTE;
+ETCDLIB_DEPRECATED_EXPORT int etcd_get(const char* key, char** value, int* 
modifiedIndex);
 
 /**
  * @desc Retrieve the contents of a directory. For every found key/value pair 
the given callback function is called.
@@ -55,7 +54,11 @@ int etcd_get(const char* key, char** value, int* 
modifiedIndex) DEP_ATTRIBUTE;
  * @param int* modifiedIndex. If not NULL the Etcd-index of the last modified 
value.
  * @return 0 on success, non zero otherwise
  */
-int etcd_get_directory(const char* directory, etcdlib_key_value_callback 
callback, void *arg, long long* modifiedIndex) DEP_ATTRIBUTE;
+ETCDLIB_DEPRECATED_EXPORT int etcd_get_directory(
+        const char* directory,
+        etcdlib_key_value_callback callback,
+        void *arg,
+        long long* modifiedIndex);
 
 /**
  * @desc Setting an Etcd-key/value
@@ -65,7 +68,7 @@ int etcd_get_directory(const char* directory, 
etcdlib_key_value_callback callbac
  * @param bool prevExist. If true the value is only set when the key already 
exists, if false it is always set
  * @return 0 on success, non zero otherwise
  */
-int etcd_set(const char* key, const char* value, int ttl, bool prevExist) 
DEP_ATTRIBUTE;
+ETCDLIB_DEPRECATED_EXPORT int etcd_set(const char* key, const char* value, int 
ttl, bool prevExist);
 
 /**
  * @desc Refresh the ttl of an existing key.
@@ -73,7 +76,7 @@ int etcd_set(const char* key, const char* value, int ttl, 
bool prevExist) DEP_AT
  * @param ttl the ttl value to use.
  * @return 0 on success, non zero otherwise.
  */
-int etcd_refresh(const char *key, int ttl) DEP_ATTRIBUTE;
+ETCDLIB_DEPRECATED_EXPORT int etcd_refresh(const char *key, int ttl);
 
 /**
  * @desc Setting an Etcd-key/value and checks if there is a different previous 
value
@@ -83,14 +86,14 @@ int etcd_refresh(const char *key, int ttl) DEP_ATTRIBUTE;
  * @param bool always_write. If true the value is written, if false only when 
the given value is equal to the value in etcd.
  * @return 0 on success, non zero otherwise
  */
-int etcd_set_with_check(const char* key, const char* value, int ttl, bool 
always_write) DEP_ATTRIBUTE;
+ETCDLIB_DEPRECATED_EXPORT int etcd_set_with_check(const char* key, const char* 
value, int ttl, bool always_write);
 
 /**
  * @desc Deleting an Etcd-key
  * @param const char* key. The Etcd-key (Note: a leading '/' should be avoided)
  * @return 0 on success, non zero otherwise
  */
-int etcd_del(const char* key) DEP_ATTRIBUTE;
+ETCDLIB_DEPRECATED_EXPORT int etcd_del(const char* key);
 
 /**
  * @desc Watching an etcd directory for changes
@@ -103,9 +106,7 @@ int etcd_del(const char* key) DEP_ATTRIBUTE;
  * @param long long* modifiedIndex. If not NULL, the index of the modification 
is written.
  * @return ETCDLIB_RC_OK (0) on success, non zero otherwise. Note that a 
timeout is signified by a ETCDLIB_RC_TIMEOUT return code.
  */
-int etcd_watch(const char* key, long long index, char** action, char** 
prevValue, char** value, char** rkey, long long* modifiedIndex) DEP_ATTRIBUTE;
-
-#undef DEP_ATTRIBUTE
+ETCDLIB_DEPRECATED_EXPORT int etcd_watch(const char* key, long long index, 
char** action, char** prevValue, char** value, char** rkey, long long* 
modifiedIndex);
 
 #ifdef __cplusplus
 }
diff --git a/libs/etcdlib/api/etcdlib.h b/libs/etcdlib/api/etcdlib.h
index 809163e6..19b63133 100644
--- a/libs/etcdlib/api/etcdlib.h
+++ b/libs/etcdlib/api/etcdlib.h
@@ -26,6 +26,7 @@ extern "C"
 #endif
 
 #include <stdbool.h>
+#include "etcdlib_export.h"
 
 /*
  * If set etcdlib will _not_ initialize curl
@@ -57,23 +58,23 @@ typedef void (*etcdlib_key_value_callback) (const char 
*key, const char *value,
  * @param int flags. bitwise flags to control etcdlib initialization. 
  * @return Pointer to the etcdlib_t struct needed by subsequent api calls
  */
-etcdlib_t* etcdlib_create(const char* server, int port, int flags);
+ETCDLIB_EXPORT etcdlib_t* etcdlib_create(const char* server, int port, int 
flags);
 
 /**
  * @desc Destroys the ETCD-LIB.  with the server/port where Etcd can be 
reached.
  * @param etcdlib_t* The ETCD-LIB instance.
  */
-void etcdlib_destroy(etcdlib_t *etcdlib);
+ETCDLIB_EXPORT void etcdlib_destroy(etcdlib_t *etcdlib);
 
 /**
  * Returns the configured etcd host for etcdlib.
  */
-const char* etcdlib_host(etcdlib_t *etcdlib);
+ETCDLIB_EXPORT const char* etcdlib_host(etcdlib_t *etcdlib);
 
 /**
  * Returns the configured etcd port for etcdlib.
  */
-int etcdlib_port(etcdlib_t *etcdlib);
+ETCDLIB_EXPORT int etcdlib_port(etcdlib_t *etcdlib);
 
 /**
  * @desc Retrieve a single value from Etcd.
@@ -83,7 +84,7 @@ int etcdlib_port(etcdlib_t *etcdlib);
  * @param int* modifiedIndex. If not NULL the Etcd-index of the last modified 
value.
  * @return 0 on success, non zero otherwise
  */
-int etcdlib_get(etcdlib_t *etcdlib, const char* key, char** value, int* 
modifiedIndex);
+ETCDLIB_EXPORT int etcdlib_get(etcdlib_t *etcdlib, const char* key, char** 
value, int* modifiedIndex);
 
 /**
  * @desc Retrieve the contents of a directory. For every found key/value pair 
the given callback function is called.
@@ -94,7 +95,7 @@ int etcdlib_get(etcdlib_t *etcdlib, const char* key, char** 
value, int* modified
  * @param int* modifiedIndex. If not NULL the Etcd-index of the last modified 
value.
  * @return 0 on success, non zero otherwise
  */
-int etcdlib_get_directory(etcdlib_t *etcdlib, const char* directory, 
etcdlib_key_value_callback callback, void *arg, long long* modifiedIndex);
+ETCDLIB_EXPORT int etcdlib_get_directory(etcdlib_t *etcdlib, const char* 
directory, etcdlib_key_value_callback callback, void *arg, long long* 
modifiedIndex);
 
 /**
  * @desc Setting an Etcd-key/value
@@ -105,7 +106,7 @@ int etcdlib_get_directory(etcdlib_t *etcdlib, const char* 
directory, etcdlib_key
  * @param bool prevExist. If true the value is only set when the key already 
exists, if false it is always set
  * @return 0 on success, non zero otherwise
  */
-int etcdlib_set(etcdlib_t *etcdlib, const char* key, const char* value, int 
ttl, bool prevExist);
+ETCDLIB_EXPORT int etcdlib_set(etcdlib_t *etcdlib, const char* key, const 
char* value, int ttl, bool prevExist);
 
 /**
  * @desc Refresh the ttl of an existing key.
@@ -114,7 +115,7 @@ int etcdlib_set(etcdlib_t *etcdlib, const char* key, const 
char* value, int ttl,
  * @param ttl the ttl value to use.
  * @return 0 on success, non zero otherwise.
  */
-int etcdlib_refresh(etcdlib_t *etcdlib, const char *key, int ttl);
+ETCDLIB_EXPORT int etcdlib_refresh(etcdlib_t *etcdlib, const char *key, int 
ttl);
 
 /**
  * @desc Setting an Etcd-key/value and checks if there is a different previous 
value
@@ -125,7 +126,7 @@ int etcdlib_refresh(etcdlib_t *etcdlib, const char *key, 
int ttl);
  * @param bool always_write. If true the value is written, if false only when 
the given value is equal to the value in etcd.
  * @return 0 on success, non zero otherwise
  */
-int etcdlib_set_with_check(etcdlib_t *etcdlib, const char* key, const char* 
value, int ttl, bool always_write);
+ETCDLIB_EXPORT int etcdlib_set_with_check(etcdlib_t *etcdlib, const char* key, 
const char* value, int ttl, bool always_write);
 
 /**
  * @desc Deleting an Etcd-key
@@ -133,7 +134,7 @@ int etcdlib_set_with_check(etcdlib_t *etcdlib, const char* 
key, const char* valu
  * @param const char* key. The Etcd-key (Note: a leading '/' should be avoided)
  * @return 0 on success, non zero otherwise
  */
-int etcdlib_del(etcdlib_t *etcdlib, const char* key);
+ETCDLIB_EXPORT int etcdlib_del(etcdlib_t *etcdlib, const char* key);
 
 /**
  * @desc Watching an etcd directory for changes
@@ -147,7 +148,7 @@ int etcdlib_del(etcdlib_t *etcdlib, const char* key);
  * @param long long* modifiedIndex. If not NULL, the index of the modification 
is written.
  * @return ETCDLIB_RC_OK (0) on success, non zero otherwise. Note that a 
timeout is signified by a ETCDLIB_RC_TIMEOUT return code.
  */
-int etcdlib_watch(etcdlib_t *etcdlib, const char* key, long long index, char** 
action, char** prevValue, char** value, char** rkey, long long* modifiedIndex);
+ETCDLIB_EXPORT int etcdlib_watch(etcdlib_t *etcdlib, const char* key, long 
long index, char** action, char** prevValue, char** value, char** rkey, long 
long* modifiedIndex);
 
 #ifdef __cplusplus
 }
diff --git a/libs/utils/CMakeLists.txt b/libs/utils/CMakeLists.txt
index d1381656..87ba290b 100644
--- a/libs/utils/CMakeLists.txt
+++ b/libs/utils/CMakeLists.txt
@@ -70,32 +70,29 @@ ELSEIF(ANDROID)
     target_link_libraries(utils_obj PRIVATE m)
 ENDIF()
 
-include(GenerateExportHeader)
 generate_export_header(utils_obj
     BASE_NAME "CELIX_UTILS"
-    EXPORT_FILE_NAME 
"${CMAKE_CURRENT_BINARY_DIR}/gen_include/celix_utils_export.h")
-target_include_directories(utils_obj PUBLIC 
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/gen_include>)
+    EXPORT_FILE_NAME 
"${CMAKE_BINARY_DIR}/celix/gen/includes/utils/celix_utils_export.h")
+target_include_directories(utils_obj PUBLIC 
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/celix/gen/includes/utils>)
 
 add_library(utils SHARED)
 target_link_libraries(utils PUBLIC utils_obj)
 
 set_target_properties(utils
     PROPERTIES
-        CXX_VISIBILITY_PRESET hidden
         C_VISIBILITY_PRESET hidden
         VISIBILITY_INLINES_HIDDEN true
         SOVERSION ${CELIX_MAJOR}
-        OUTPUT_NAME "celix_utils"
-)
+        OUTPUT_NAME "celix_utils")
 
 # By omitting OBJECTS DESTINATION, object files will NOT be installed.
 install(TARGETS utils utils_obj EXPORT celix LIBRARY DESTINATION 
${CMAKE_INSTALL_LIBDIR} COMPONENT framework
-        INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix_utils)
+        INCLUDES DESTINATION 
${CMAKE_INSTALL_INCLUDEDIR}/$<TARGET_PROPERTY:utils,OUTPUT_NAME>)
 install(DIRECTORY include/
-        DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix_utils
+        DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix_utils/
         COMPONENT framework PATTERN memstream* EXCLUDE)
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gen_include/celix_utils_export.h
-        DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix_utils
+install(DIRECTORY ${CMAKE_BINARY_DIR}/celix/gen/includes/utils/
+        DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix_utils/
         COMPONENT framework)
 
 if (CELIX_INSTALL_DEPRECATED_API)

Reply via email to