Add codesigning on OS X

This commit is contained in:
Micke Prag 2013-10-10 16:11:24 +02:00
parent ce86c90c8b
commit 0886564e94
4 changed files with 34 additions and 25 deletions

View file

@ -98,15 +98,29 @@ IF(Plugin_SRCS)
TARGET_LINK_LIBRARIES( ${Plugin_NAME} ${Plugin_LIBRARIES} ) TARGET_LINK_LIBRARIES( ${Plugin_NAME} ${Plugin_LIBRARIES} )
IF (APPLE) IF (APPLE)
SET_TARGET_PROPERTIES(${Plugin_NAME} PROPERTIES
PREFIX ""
)
ELSEIF (WIN32)
SET_TARGET_PROPERTIES(${Plugin_NAME} PROPERTIES
PREFIX "Plugins/script/"
)
ELSE ()
SET_TARGET_PROPERTIES(${Plugin_NAME} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/TelldusCenter/Plugins/script
)
INSTALL(TARGETS ${Plugin_NAME}
LIBRARY DESTINATION "${PLUGIN_LIB_FULL_PATH}/script"
)
ENDIF ()
SIGN(${Plugin_NAME})
IF(APPLE)
ADD_CUSTOM_COMMAND(TARGET ${Plugin_NAME} POST_BUILD ADD_CUSTOM_COMMAND(TARGET ${Plugin_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${Plugin_NAME}.dylib ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${Plugin_NAME}.dylib
${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/TelldusCenter.app/Contents/Plugins/script ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/TelldusCenter.app/Contents/Plugins/script
COMMENT "Copy plugin ${Plugin_NAME} to destination bundle" COMMENT "Copy plugin ${Plugin_NAME} to destination bundle"
) )
SET_TARGET_PROPERTIES(${Plugin_NAME} PROPERTIES
PREFIX ""
)
INSTALL(CODE " INSTALL(CODE "
GET_FILENAME_COMPONENT(DESTDIR \$ENV{DESTDIR} ABSOLUTE) GET_FILENAME_COMPONENT(DESTDIR \$ENV{DESTDIR} ABSOLUTE)
SET(app \"\${DESTDIR}/Applications/TelldusCenter.app\") SET(app \"\${DESTDIR}/Applications/TelldusCenter.app\")
@ -137,19 +151,7 @@ IF(Plugin_SRCS)
ENDFOREACH() ENDFOREACH()
") ")
ELSEIF (WIN32) ENDIF()
SET_TARGET_PROPERTIES(${Plugin_NAME} PROPERTIES
PREFIX "Plugins/script/"
)
ELSE (APPLE)
SET_TARGET_PROPERTIES(${Plugin_NAME} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/TelldusCenter/Plugins/script
)
INSTALL(TARGETS ${Plugin_NAME}
LIBRARY DESTINATION "${PLUGIN_LIB_FULL_PATH}/script"
)
ENDIF (APPLE)
SIGN(${Plugin_NAME})
ELSE(Plugin_SRCS) ELSE(Plugin_SRCS)
ADD_CUSTOM_TARGET(${Plugin_NAME} ALL ADD_CUSTOM_TARGET(${Plugin_NAME} ALL
SOURCES ${Plugin_FILES} ${Plugin_TARGET_FILES} SOURCES ${Plugin_FILES} ${Plugin_TARGET_FILES}

View file

@ -151,7 +151,6 @@ TARGET_LINK_LIBRARIES( ${telldus-center_TARGET} ${telldus-center_LIBRARIES} )
SET_TARGET_PROPERTIES(${telldus-center_TARGET} PROPERTIES SET_TARGET_PROPERTIES(${telldus-center_TARGET} PROPERTIES
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_BINARY_DIR}/Info.plist MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_BINARY_DIR}/Info.plist
) )
SIGN(${telldus-center_TARGET})
IF (APPLE) IF (APPLE)
SET_TARGET_PROPERTIES(${telldus-center_TARGET} PROPERTIES SET_TARGET_PROPERTIES(${telldus-center_TARGET} PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
@ -161,6 +160,7 @@ IF (APPLE)
COMMAND mkdir -p "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/TelldusCenter.app/Contents/Plugins/script/" COMMAND mkdir -p "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/TelldusCenter.app/Contents/Plugins/script/"
) )
ENDIF (APPLE) ENDIF (APPLE)
SIGN(${telldus-center_TARGET})
IF (UNIX) IF (UNIX)
IF (GENERATE_MAN) IF (GENERATE_MAN)

View file

@ -143,8 +143,6 @@ ENDIF (UNIX)
TARGET_LINK_LIBRARIES( ${telldus-gui_TARGET} ${telldus-gui_LIBRARIES} ) TARGET_LINK_LIBRARIES( ${telldus-gui_TARGET} ${telldus-gui_LIBRARIES} )
SIGN(${telldus-gui_TARGET})
SET_TARGET_PROPERTIES(${telldus-gui_TARGET} PROPERTIES SET_TARGET_PROPERTIES(${telldus-gui_TARGET} PROPERTIES
FRAMEWORK TRUE FRAMEWORK TRUE
# PUBLIC_HEADER ${telldus-gui_HDRS} # PUBLIC_HEADER ${telldus-gui_HDRS}
@ -153,6 +151,8 @@ SET_TARGET_PROPERTIES(${telldus-gui_TARGET} PROPERTIES
INSTALL_NAME_DIR "/Library/Frameworks" INSTALL_NAME_DIR "/Library/Frameworks"
) )
SIGN(${telldus-gui_TARGET})
IF (WIN32) IF (WIN32)
ADD_CUSTOM_COMMAND( TARGET ${telldus-gui_TARGET} ADD_CUSTOM_COMMAND( TARGET ${telldus-gui_TARGET}
POST_BUILD POST_BUILD

View file

@ -1,10 +1,10 @@
IF(WIN32) IF(WIN32 OR APPLE)
SET(SIGN_FILES FALSE CACHE BOOL "Sign files ofter build") SET(SIGN_FILES FALSE CACHE BOOL "Sign files ofter build")
ENDIF() ENDIF()
FUNCTION(SIGN TARGET) FUNCTION(SIGN TARGET)
IF (NOT WIN32) IF (NOT WIN32 AND NOT APPLE)
RETURN() RETURN()
ENDIF() ENDIF()
IF (NOT SIGN_FILES) IF (NOT SIGN_FILES)
@ -12,8 +12,15 @@ FUNCTION(SIGN TARGET)
ENDIF() ENDIF()
GET_TARGET_PROPERTY(file ${TARGET} LOCATION) GET_TARGET_PROPERTY(file ${TARGET} LOCATION)
GET_FILENAME_COMPONENT(filename ${file} NAME) GET_FILENAME_COMPONENT(filename ${file} NAME)
ADD_CUSTOM_COMMAND( TARGET ${TARGET} POST_BUILD IF (WIN32)
COMMAND signtool.exe sign /a /t http://timestamp.verisign.com/scripts/timstamp.dll ${file} ADD_CUSTOM_COMMAND( TARGET ${TARGET} POST_BUILD
COMMENT "Signing file ${filename}" COMMAND signtool.exe sign /a /t http://timestamp.verisign.com/scripts/timstamp.dll ${file}
) COMMENT "Signing file ${filename}"
)
ELSEIF(APPLE)
ADD_CUSTOM_COMMAND( TARGET ${TARGET} POST_BUILD
COMMAND codesign -v --force --sign "Developer ID Application: Telldus Technologies AB" ${file}
COMMENT "Signing file ${filename}"
)
ENDIF()
ENDFUNCTION() ENDFUNCTION()