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)