cmake_minimum_required( VERSION 3.13 ) add_compile_definitions(RARDLL) add_compile_definitions(WARN_DLOPEN_FAIL) add_compile_definitions(_FILE_OFFSET_BITS=64) if(WIN32) add_compile_definitions(_CRT_SECURE_NO_WARNINGS) endif() # unrar object add_library( unrar_obj OBJECT ) target_sources( unrar_obj PRIVATE "archive.cpp" "arcread.cpp" "blake2s.cpp" "cmddata.cpp" "consio.cpp" "crc.cpp" "crypt.cpp" "dll.cpp" "encname.cpp" "errhnd.cpp" "extinfo.cpp" "extract.cpp" "filcreat.cpp" "file.cpp" "filefn.cpp" "filestr.cpp" "find.cpp" "getbits.cpp" "global.cpp" "hash.cpp" "headers.cpp" "isnt.cpp" "list.cpp" "match.cpp" "options.cpp" "pathfn.cpp" "qopen.cpp" "rar.cpp" "rarvm.cpp" "rawread.cpp" "rdwrfn.cpp" "recvol.cpp" "resource.cpp" "rijndael.cpp" "rs.cpp" "rs16.cpp" "scantree.cpp" "secpassword.cpp" "sha1.cpp" "sha256.cpp" "smallfn.cpp" "strfn.cpp" "strlist.cpp" "system.cpp" "threadpool.cpp" "timefn.cpp" "ui.cpp" "unicode.cpp" "unpack.cpp" "volume.cpp" ) target_include_directories( unrar_obj PRIVATE "${CMAKE_BINARY_DIR}" PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" ) if(NOT WIN32) set_target_properties( unrar_obj PROPERTIES COMPILE_FLAGS "-Wno-logical-op-parentheses -Wno-switch -Wno-dangling-else") endif() # The unrar shared library. add_library( clamunrar SHARED ) set_target_properties(clamunrar PROPERTIES VERSION "5.7.5" SOVERSION 5) target_sources( clamunrar PUBLIC "rar.hpp" "dll.hpp" ) if(WIN32) set_target_properties(clamunrar PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) endif() # Public (forwarded) dependencies. target_link_libraries( clamunrar PUBLIC unrar_obj ) if(WIN32) install(TARGETS clamunrar DESTINATION ${CMAKE_INSTALL_PREFIX}) else() install(TARGETS clamunrar DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() add_library( ClamAV::libclamunrar ALIAS clamunrar )