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 ) |