86 lines
2.4 KiB
CMake
86 lines
2.4 KiB
CMake
|
|
cmake_minimum_required(VERSION 3.12...3.31)
|
||
|
|
|
||
|
|
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules")
|
||
|
|
|
||
|
|
project(
|
||
|
|
zlibAda
|
||
|
|
VERSION 1.0.0
|
||
|
|
LANGUAGES C ADA
|
||
|
|
DESCRIPTION "A library for creating zipfiles based in zlib"
|
||
|
|
HOMEPAGE_URL "https://www.zlib.net")
|
||
|
|
|
||
|
|
if(ZLIB_BUILD_ADA)
|
||
|
|
set(ZLIB_ADA_BUILD_SHARED ${ZLIB_BUILD_SHARED} CACHE BOOL "")
|
||
|
|
set(ZLIB_ADA_BUILD_STATIC ${ZLIB_BUILD_STATIC} CACHE BOOL "")
|
||
|
|
set(ZLIB_ADA_BUILD_TESTING ${ZLIB_BUILD_TESTING} CACHE BOOL "")
|
||
|
|
set(ZLIB_ADA_INSTALL ${ZLIB_INSTALL} CACHE BOOL "")
|
||
|
|
endif(ZLIB_BUILD_ADA)
|
||
|
|
|
||
|
|
option(ZLIB_ADA_BUILD_SHARED "Enable building ada bindings shared library" ON)
|
||
|
|
option(ZLIB_ADA_BUILD_STATIC "Enable building ada bindings static library" ON)
|
||
|
|
option(ZLIB_ADA_BUILD_TESTING "Enable building tests for ada bindings library" ON)
|
||
|
|
|
||
|
|
if(WIN32 OR CYGWIN)
|
||
|
|
set(zlib_Ada_static_suffix "s")
|
||
|
|
set(CMAKE_DEBUG_POSTFIX "d")
|
||
|
|
endif(WIN32 OR CYGWIN)
|
||
|
|
|
||
|
|
if(NOT DEFINED ZLIB_BUILD_ADA)
|
||
|
|
if(ZLIB_ADA_BUILD_SHARED)
|
||
|
|
list(APPEND REQUIRED_COMPONENTS "shared")
|
||
|
|
endif(ZLIB_ADA_BUILD_SHARED)
|
||
|
|
|
||
|
|
if(ZLIB_ADA_BUILD_STATIC)
|
||
|
|
list(APPEND REQUIRED_COMPONENTS "static")
|
||
|
|
endif(ZLIB_ADA_BUILD_STATIC)
|
||
|
|
|
||
|
|
find_package(ZLIB REQUIRED COMPONENTS ${REQUIRED_COMPONENTS} CONFIG)
|
||
|
|
endif(NOT DEFINED ZLIB_BUILD_ADA)
|
||
|
|
|
||
|
|
if(ZLIB_ADA_BUILD_SHARED)
|
||
|
|
ada_add_library(zlib_ada_Ada SHARED
|
||
|
|
zlib-thin.adb
|
||
|
|
zlib.adb)
|
||
|
|
|
||
|
|
set_target_properties(zlib_ada_Ada
|
||
|
|
PROPERTIES OUTPUT_NAME zlib-ada)
|
||
|
|
|
||
|
|
target_link_libraries(zlib_ada_Ada
|
||
|
|
INTERFACE ZLIB::ZLIB)
|
||
|
|
|
||
|
|
ada_add_library(zlib_ada_streams SHARED
|
||
|
|
zlib-streams.adb)
|
||
|
|
|
||
|
|
target_link_libraries(zlib_ada_streams
|
||
|
|
PUBLIC
|
||
|
|
zlib_ada_Ada)
|
||
|
|
|
||
|
|
ada_find_ali(zlib_ada_streams)
|
||
|
|
endif(ZLIB_ADA_BUILD_SHARED)
|
||
|
|
|
||
|
|
if(ZLIB_ADA_BUILD_STATIC)
|
||
|
|
ada_add_library(zlib_ada_AdaStatic STATIC
|
||
|
|
zlib-thin.adb
|
||
|
|
zlib.adb)
|
||
|
|
|
||
|
|
target_link_libraries(zlib_ada_AdaStatic
|
||
|
|
INTERFACE ZLIB::ZLIBSTATIC)
|
||
|
|
|
||
|
|
set_target_properties(zlib_ada_AdaStatic
|
||
|
|
PROPERTIES OUTPUT_NAME zlib-ada${zlib_Ada_static_suffix})
|
||
|
|
|
||
|
|
ada_add_library(zlib_ada_streamsStatic STATIC
|
||
|
|
zlib-streams.adb)
|
||
|
|
|
||
|
|
target_link_libraries(zlib_ada_streamsStatic
|
||
|
|
PUBLIC
|
||
|
|
zlib_ada_AdaStatic)
|
||
|
|
|
||
|
|
ada_find_ali(zlib_ada_streamsStatic)
|
||
|
|
endif(ZLIB_ADA_BUILD_STATIC)
|
||
|
|
|
||
|
|
if(ZLIB_ADA_BUILD_TESTING)
|
||
|
|
enable_testing()
|
||
|
|
add_subdirectory(test)
|
||
|
|
endif(ZLIB_ADA_BUILD_TESTING)
|