mirror of
https://github.com/Cisco-Talos/clamav.git
synced 2026-02-01 02:21:25 -05:00
CMake: support macOS code signing during build
To build with code signing, the macOS build must have: -G Xcode \ -D CLAMAV_SIGN_FILE=ON \ -D CODE_SIGN_IDENTITY="...your codesign ID..." \ -D DEVELOPMENT_TEAM_ID="...your team ID..." \ You can find the codesign ID using: /usr/bin/env xcrun security find-identity -v -p codesigning The team ID should also be listed in the identity description. Also I changed the package name for APPLE to be "clamav" so it doesn't put "ClamAV <version>" in the PKG PackageInfo like this: com.cisco.ClamAV 0.104.0.libraries Instead, it should just be something like: com.cisco.clamav.libraries Version is a separate field in that file and shouldn't be in the name.
This commit is contained in:
committed by
Micah Snyder
parent
ea625441e1
commit
016af483e6
@@ -322,9 +322,10 @@ if (WIN32)
|
||||
DESTINATION ".")
|
||||
|
||||
elseif(APPLE)
|
||||
set(CPACK_GENERATOR productbuild)
|
||||
set(CPACK_PACKAGE_NAME ClamAV)
|
||||
set(CPACK_GENERATOR productbuild)
|
||||
set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_FILE_NAME}.macos.universal)
|
||||
set(CPACK_PACKAGE_VENDOR "cisco") # For Apple, creates short name com.cisco.clamav.xxx in pkgutil
|
||||
set(CPACK_PACKAGE_VENDOR "cisco") # For Apple, creates short name com.cisco.clamav.xxx in pkgutil
|
||||
|
||||
# productbuild requires components or it won't add anything to the PKG
|
||||
set(CPACK_COMPONENT_LIBRARIES_DISPLAY_NAME "Libraries")
|
||||
|
||||
@@ -17,6 +17,14 @@ target_include_directories( clamav-milter
|
||||
PRIVATE ${CMAKE_BINARY_DIR} # For clamav-config.h
|
||||
)
|
||||
set_target_properties( clamav-milter PROPERTIES COMPILE_FLAGS "${WARNCFLAGS}" )
|
||||
|
||||
if (APPLE AND CLAMAV_SIGN_FILE)
|
||||
set_target_properties( clamav-milter PROPERTIES
|
||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${CODE_SIGN_IDENTITY}
|
||||
XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ${DEVELOPMENT_TEAM_ID}
|
||||
)
|
||||
endif()
|
||||
|
||||
target_link_libraries( clamav-milter
|
||||
PRIVATE
|
||||
ClamAV::libclamav
|
||||
|
||||
@@ -22,6 +22,14 @@ target_include_directories( clambc
|
||||
PRIVATE ${CMAKE_BINARY_DIR} # For clamav-config.h
|
||||
)
|
||||
set_target_properties( clambc PROPERTIES COMPILE_FLAGS "${WARNCFLAGS}" )
|
||||
|
||||
if (APPLE AND CLAMAV_SIGN_FILE)
|
||||
set_target_properties( clambc PROPERTIES
|
||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${CODE_SIGN_IDENTITY}
|
||||
XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ${DEVELOPMENT_TEAM_ID}
|
||||
)
|
||||
endif()
|
||||
|
||||
target_link_libraries( clambc
|
||||
PRIVATE
|
||||
ClamAV::libclamav
|
||||
|
||||
@@ -22,6 +22,14 @@ target_include_directories( clamconf
|
||||
PRIVATE ${CMAKE_BINARY_DIR} # For clamav-config.h
|
||||
)
|
||||
set_target_properties( clamconf PROPERTIES COMPILE_FLAGS "${WARNCFLAGS}" )
|
||||
|
||||
if (APPLE AND CLAMAV_SIGN_FILE)
|
||||
set_target_properties( clamconf PROPERTIES
|
||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${CODE_SIGN_IDENTITY}
|
||||
XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ${DEVELOPMENT_TEAM_ID}
|
||||
)
|
||||
endif()
|
||||
|
||||
target_link_libraries( clamconf
|
||||
PRIVATE
|
||||
ClamAV::libclamav
|
||||
|
||||
@@ -31,8 +31,8 @@ target_sources( clamd
|
||||
thrmgr.c
|
||||
thrmgr.h )
|
||||
if(WIN32)
|
||||
target_sources( clamd
|
||||
PRIVATE
|
||||
target_sources( clamd
|
||||
PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/win32/res/clamd.rc
|
||||
${CMAKE_SOURCE_DIR}/win32/res/clam.manifest )
|
||||
endif()
|
||||
@@ -40,6 +40,14 @@ target_include_directories( clamd
|
||||
PRIVATE ${CMAKE_BINARY_DIR} # For clamav-config.h
|
||||
)
|
||||
set_target_properties( clamd PROPERTIES COMPILE_FLAGS "${WARNCFLAGS}" )
|
||||
|
||||
if (APPLE AND CLAMAV_SIGN_FILE)
|
||||
set_target_properties( clamd PROPERTIES
|
||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${CODE_SIGN_IDENTITY}
|
||||
XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ${DEVELOPMENT_TEAM_ID}
|
||||
)
|
||||
endif()
|
||||
|
||||
target_link_libraries( clamd
|
||||
PRIVATE
|
||||
ClamAV::libclamav
|
||||
|
||||
@@ -20,8 +20,8 @@ target_sources( clamdscan
|
||||
proto.c
|
||||
proto.h )
|
||||
if(WIN32)
|
||||
target_sources( clamdscan
|
||||
PRIVATE
|
||||
target_sources( clamdscan
|
||||
PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/win32/res/clamdscan.rc
|
||||
${CMAKE_SOURCE_DIR}/win32/res/clam.manifest )
|
||||
endif()
|
||||
@@ -29,6 +29,14 @@ target_include_directories( clamdscan
|
||||
PRIVATE ${CMAKE_BINARY_DIR} # For clamav-config.h
|
||||
)
|
||||
set_target_properties( clamdscan PROPERTIES COMPILE_FLAGS "${WARNCFLAGS}" )
|
||||
|
||||
if (APPLE AND CLAMAV_SIGN_FILE)
|
||||
set_target_properties( clamdscan PROPERTIES
|
||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${CODE_SIGN_IDENTITY}
|
||||
XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ${DEVELOPMENT_TEAM_ID}
|
||||
)
|
||||
endif()
|
||||
|
||||
target_link_libraries( clamdscan
|
||||
PRIVATE
|
||||
ClamAV::libclamav
|
||||
|
||||
@@ -22,6 +22,14 @@ target_include_directories( clamdtop
|
||||
PRIVATE ${CMAKE_BINARY_DIR} # For clamav-config.h
|
||||
)
|
||||
set_target_properties( clamdtop PROPERTIES COMPILE_FLAGS "${WARNCFLAGS}" )
|
||||
|
||||
if (APPLE AND CLAMAV_SIGN_FILE)
|
||||
set_target_properties( clamdtop PROPERTIES
|
||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${CODE_SIGN_IDENTITY}
|
||||
XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ${DEVELOPMENT_TEAM_ID}
|
||||
)
|
||||
endif()
|
||||
|
||||
target_link_libraries( clamdtop
|
||||
PRIVATE
|
||||
ClamAV::libclamav
|
||||
|
||||
@@ -44,6 +44,7 @@ target_include_directories( clamonacc
|
||||
)
|
||||
|
||||
set_target_properties( clamonacc PROPERTIES COMPILE_FLAGS "${WARNCFLAGS}" )
|
||||
|
||||
target_link_libraries( clamonacc
|
||||
PRIVATE
|
||||
ClamAV::libclamav
|
||||
|
||||
@@ -19,15 +19,23 @@ target_sources( clamscan
|
||||
manager.h
|
||||
global.h )
|
||||
if(WIN32)
|
||||
target_sources( clamscan
|
||||
PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/win32/res/clamscan.rc
|
||||
target_sources( clamscan
|
||||
PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/win32/res/clamscan.rc
|
||||
${CMAKE_SOURCE_DIR}/win32/res/clam.manifest )
|
||||
endif()
|
||||
target_include_directories( clamscan
|
||||
PRIVATE ${CMAKE_BINARY_DIR} # For clamav-config.h
|
||||
)
|
||||
set_target_properties( clamscan PROPERTIES COMPILE_FLAGS "${WARNCFLAGS}" )
|
||||
|
||||
if (APPLE AND CLAMAV_SIGN_FILE)
|
||||
set_target_properties( clamscan PROPERTIES
|
||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${CODE_SIGN_IDENTITY}
|
||||
XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ${DEVELOPMENT_TEAM_ID}
|
||||
)
|
||||
endif()
|
||||
|
||||
target_link_libraries( clamscan
|
||||
PRIVATE
|
||||
ClamAV::libclamav
|
||||
|
||||
@@ -22,6 +22,14 @@ target_include_directories( clamsubmit
|
||||
PRIVATE ${CMAKE_BINARY_DIR} # For clamav-config.h
|
||||
)
|
||||
set_target_properties( clamsubmit PROPERTIES COMPILE_FLAGS "${WARNCFLAGS}" )
|
||||
|
||||
if (APPLE AND CLAMAV_SIGN_FILE)
|
||||
set_target_properties( clamscan PROPERTIES
|
||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${CODE_SIGN_IDENTITY}
|
||||
XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ${DEVELOPMENT_TEAM_ID}
|
||||
)
|
||||
endif()
|
||||
|
||||
target_link_libraries( clamsubmit
|
||||
PRIVATE
|
||||
ClamAV::libclamav
|
||||
|
||||
@@ -20,12 +20,20 @@ target_sources( freshclam-bin
|
||||
notify.c
|
||||
notify.h )
|
||||
if(WIN32)
|
||||
target_sources( freshclam-bin
|
||||
PRIVATE
|
||||
target_sources( freshclam-bin
|
||||
PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/win32/res/freshclam.rc
|
||||
${CMAKE_SOURCE_DIR}/win32/res/clam.manifest )
|
||||
endif()
|
||||
set_target_properties( freshclam-bin PROPERTIES COMPILE_FLAGS "${WARNCFLAGS}" )
|
||||
|
||||
if (APPLE AND CLAMAV_SIGN_FILE)
|
||||
set_target_properties( freshclam-bin PROPERTIES
|
||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${CODE_SIGN_IDENTITY}
|
||||
XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ${DEVELOPMENT_TEAM_ID}
|
||||
)
|
||||
endif()
|
||||
|
||||
target_link_libraries(freshclam-bin
|
||||
PRIVATE
|
||||
ClamAV::libfreshclam
|
||||
|
||||
@@ -546,6 +546,14 @@ if(ENABLE_SHARED_LIB)
|
||||
set_target_properties( clamav PROPERTIES
|
||||
COMPILE_FLAGS "${WARNCFLAGS}"
|
||||
VERSION ${LIBCLAMAV_VERSION} SOVERSION ${LIBCLAMAV_SOVERSION} )
|
||||
|
||||
if (APPLE AND CLAMAV_SIGN_FILE)
|
||||
set_target_properties( clamav PROPERTIES
|
||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${CODE_SIGN_IDENTITY}
|
||||
XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ${DEVELOPMENT_TEAM_ID}
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set_target_properties( clamav PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON )
|
||||
else()
|
||||
|
||||
@@ -72,6 +72,13 @@ if(ENABLE_SHARED_LIB)
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/mspack )
|
||||
|
||||
if (APPLE AND CLAMAV_SIGN_FILE)
|
||||
set_target_properties( clammspack PROPERTIES
|
||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${CODE_SIGN_IDENTITY}
|
||||
XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ${DEVELOPMENT_TEAM_ID}
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
install(TARGETS clammspack DESTINATION . COMPONENT libraries)
|
||||
else()
|
||||
|
||||
@@ -84,6 +84,13 @@ if(ENABLE_SHARED_LIB)
|
||||
COMPILE_FLAGS "-Wno-logical-op-parentheses -Wno-switch -Wno-dangling-else")
|
||||
endif()
|
||||
|
||||
if (APPLE AND CLAMAV_SIGN_FILE)
|
||||
set_target_properties( clamunrar PROPERTIES
|
||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${CODE_SIGN_IDENTITY}
|
||||
XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ${DEVELOPMENT_TEAM_ID}
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set_target_properties(clamunrar PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
||||
endif()
|
||||
|
||||
@@ -53,6 +53,13 @@ if(ENABLE_UNRAR)
|
||||
set_target_properties( clamunrar_iface PROPERTIES
|
||||
COMPILE_FLAGS "${WARNCXXFLAGS} ${CXX1XCXXFLAGS}" )
|
||||
|
||||
if (APPLE AND CLAMAV_SIGN_FILE)
|
||||
set_target_properties( clamunrar_iface PROPERTIES
|
||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${CODE_SIGN_IDENTITY}
|
||||
XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ${DEVELOPMENT_TEAM_ID}
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set_target_properties(clamunrar_iface PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
||||
endif()
|
||||
|
||||
@@ -26,6 +26,14 @@ target_include_directories( sigtool
|
||||
)
|
||||
|
||||
set_target_properties( sigtool PROPERTIES COMPILE_FLAGS "${WARNCFLAGS}" )
|
||||
|
||||
if (APPLE AND CLAMAV_SIGN_FILE)
|
||||
set_target_properties( sigtool PROPERTIES
|
||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${CODE_SIGN_IDENTITY}
|
||||
XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ${DEVELOPMENT_TEAM_ID}
|
||||
)
|
||||
endif()
|
||||
|
||||
target_link_libraries( sigtool
|
||||
PRIVATE
|
||||
ClamAV::libclamav
|
||||
|
||||
Reference in New Issue
Block a user