src/CMakeLists.txt

Sat, 22 Apr 2023 13:06:18 +0200

author
Mike Becker <universe@uap-core.de>
date
Sat, 22 Apr 2023 13:06:18 +0200
changeset 697
ebdce4bf262b
parent 677
b09aae58bba4
child 706
8c6edaccaef1
permissions
-rw-r--r--

add cx_strcat_m() and cx_strcat_ma() for in-place concatenation

set(sources
        utils.c
        allocator.c
        string.c
        list.c
        array_list.c
        linked_list.c
        tree.c
        buffer.c
        hash_key.c
        hash_map.c
        basic_mempool.c
        printf.c
        compare.c
)
set(headers
        cx/common.h
        cx/utils.h
        cx/string.h
        cx/allocator.h
        cx/iterator.h
        cx/collection.h
        cx/list.h
        cx/array_list.h
        cx/linked_list.h
        cx/tree.h
        cx/buffer.h
        cx/map.h
        cx/hash_key.h
        cx/hash_map.h
        cx/mempool.h
        cx/basic_mempool.h
        cx/printf.h
        cx/compare.h
        )

add_library(ucx SHARED ${sources})
add_library(ucx_static STATIC ${sources})

target_include_directories(ucx PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_include_directories(ucx_static PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})

set_target_properties(ucx PROPERTIES SOVERSION 4 VERSION 4.0.0)
set_target_properties(ucx_static PROPERTIES VERSION ${CMAKE_PROJECT_VERSION})

# it is sufficient to specify the headers for one of the targets
set_target_properties(ucx PROPERTIES PUBLIC_HEADER "${headers}")

include(GNUInstallDirs)
install(TARGETS ucx ucx_static
        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
        PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/cx)

mercurial