159 lines
5 KiB
CMake
159 lines
5 KiB
CMake
FIND_PACKAGE( Qt4 REQUIRED )
|
|
SET(QT_USE_QTSCRIPT TRUE)
|
|
INCLUDE( ${QT_USE_FILE} )
|
|
FIND_PACKAGE( SignTool REQUIRED )
|
|
|
|
if(COMMAND cmake_policy)
|
|
cmake_policy(SET CMP0003 NEW)
|
|
endif(COMMAND cmake_policy)
|
|
|
|
|
|
QT4_WRAP_CPP( Plugin_MOC_SRCS ${Plugin_MOC_HDRS} )
|
|
QT4_AUTOMOC ( ${Plugin_SRCS} )
|
|
|
|
IF(Plugin_RESOURCES)
|
|
QT4_ADD_RESOURCES(Plugin_RSRCS ${Plugin_RESOURCES})
|
|
ENDIF(Plugin_RESOURCES)
|
|
|
|
SET( Plugin_LIBRARIES
|
|
${Plugin_LIBRARIES}
|
|
${QT_LIBRARIES}
|
|
)
|
|
|
|
ADD_DEFINITIONS(${QT_DEFINITIONS})
|
|
ADD_DEFINITIONS(-DQT_PLUGIN)
|
|
ADD_DEFINITIONS(-DQT_NO_DEBUG)
|
|
ADD_DEFINITIONS(-DQT_SHARED)
|
|
|
|
#SET( LIBRARY_OUTPUT_PATH ${LIBRARY_OUTPUT_PATH/Plugins} )
|
|
|
|
FOREACH(lang ${LANGUAGES})
|
|
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/translation_${lang}.ts" OR UPDATE_TRANSLATIONS)
|
|
LIST(APPEND Plugin_TS "translation_${lang}.ts")
|
|
ENDIF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/translation_${lang}.ts" OR UPDATE_TRANSLATIONS)
|
|
ENDFOREACH(lang)
|
|
SET(translation_sources ${Plugin_SRCS})
|
|
|
|
IF(Plugin_PATH)
|
|
STRING(REPLACE "." "/"
|
|
Plugin_PATH_relative ${Plugin_PATH}
|
|
)
|
|
IF (APPLE)
|
|
SET(Plugin_PATH "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/TelldusCenter.app/Contents/Plugins/script/${Plugin_PATH_relative}")
|
|
ELSEIF (WIN32)
|
|
SET(Plugin_PATH "${LIBRARY_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/Plugins/script/${Plugin_PATH_relative}")
|
|
ELSE (APPLE)
|
|
SET(Plugin_PATH "${CMAKE_BINARY_DIR}/TelldusCenter/Plugins/script/${Plugin_PATH_relative}")
|
|
ENDIF (APPLE)
|
|
|
|
LIST(APPEND translation_sources
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/__init__.js"
|
|
)
|
|
LIST(APPEND Plugin_FILES "${CMAKE_CURRENT_SOURCE_DIR}/__init__.js")
|
|
#Add all extra files
|
|
FOREACH(_FILE ${Plugin_EXTRA})
|
|
GET_FILENAME_COMPONENT(ext "${CMAKE_CURRENT_SOURCE_DIR}/${_FILE}" EXT)
|
|
IF (ext STREQUAL ".qml" OR ext STREQUAL ".ui")
|
|
LIST(APPEND translation_sources "${CMAKE_CURRENT_SOURCE_DIR}/${_FILE}")
|
|
ENDIF ()
|
|
LIST(APPEND Plugin_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${_FILE}")
|
|
ENDFOREACH(_FILE)
|
|
ENDIF(Plugin_PATH)
|
|
|
|
IF (UPDATE_TRANSLATIONS)
|
|
QT4_CREATE_TRANSLATION( QM_FILES ${Plugin_SRCS} ${translation_sources} ${Plugin_TS} )
|
|
ELSE (UPDATE_TRANSLATIONS)
|
|
QT4_ADD_TRANSLATION(Plugin_QM ${Plugin_TS})
|
|
LIST(APPEND Plugin_FILES ${Plugin_QM})
|
|
ENDIF (UPDATE_TRANSLATIONS)
|
|
|
|
IF(Plugin_PATH)
|
|
FOREACH(_FILE ${Plugin_FILES})
|
|
GET_FILENAME_COMPONENT(_FILENAME ${_FILE} NAME)
|
|
ADD_CUSTOM_COMMAND( OUTPUT ${Plugin_PATH}/${_FILENAME}
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${_FILE} ${Plugin_PATH}/${_FILENAME}
|
|
DEPENDS ${_FILE}
|
|
COMMENT "Copy ${_FILENAME} for plugin ${Plugin_NAME}"
|
|
)
|
|
LIST(APPEND Plugin_TARGET_FILES "${Plugin_PATH}/${_FILENAME}")
|
|
IF (NOT APPLE)
|
|
INSTALL(FILES ${_FILE} DESTINATION "${PLUGIN_LIB_FULL_PATH}/script/${Plugin_PATH_relative}")
|
|
ENDIF ()
|
|
ENDFOREACH(_FILE)
|
|
ENDIF(Plugin_PATH)
|
|
|
|
IF(Plugin_SRCS)
|
|
ADD_LIBRARY(${Plugin_NAME} SHARED
|
|
${Plugin_SRCS}
|
|
${Plugin_HDRS}
|
|
${Plugin_RSRCS}
|
|
${Plugin_MOC_HDRS}
|
|
${Plugin_MOC_SRCS}
|
|
${Plugin_MOC_HDRS}
|
|
${Plugin_FILES}
|
|
${Plugin_TS}
|
|
${Plugin_QM}
|
|
${Plugin_TARGET_FILES}
|
|
)
|
|
TARGET_LINK_LIBRARIES( ${Plugin_NAME} ${Plugin_LIBRARIES} )
|
|
|
|
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
|
|
COMMAND ${CMAKE_COMMAND} -E copy
|
|
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${Plugin_NAME}.dylib
|
|
${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/TelldusCenter.app/Contents/Plugins/script
|
|
COMMENT "Copy plugin ${Plugin_NAME} to destination bundle"
|
|
)
|
|
INSTALL(CODE "
|
|
GET_FILENAME_COMPONENT(DESTDIR \$ENV{DESTDIR} ABSOLUTE)
|
|
SET(app \"\${DESTDIR}/Applications/TelldusCenter.app\")
|
|
GET_BUNDLE_AND_EXECUTABLE(\"\${app}\" bundle exe valid)
|
|
GET_FILENAME_COMPONENT(exedir \"\${exe}\" PATH)
|
|
SET(plugin \"\${bundle}/Contents/Plugins/script/${Plugin_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}\")
|
|
|
|
GET_ITEM_KEY(\"\${plugin}\" pkey)
|
|
SET(prereqs \"\")
|
|
GET_PREREQUISITES(\${plugin} prereqs 1 0 \"\${exe}\" \"\${bundle}/Contents/Frameworks/\")
|
|
FOREACH(pr \${prereqs})
|
|
GET_ITEM_KEY(\"\${pr}\" rkey)
|
|
|
|
#Don't change the path to TelldusCore
|
|
IF (NOT \"\${rkey}\" STREQUAL \"TelldusCore\")
|
|
#Check to see if this is ourself
|
|
IF (NOT \${pkey} STREQUAL \${rkey})
|
|
SET(kv \"\")
|
|
SET_BUNDLE_KEY_VALUES(kv \"\${pr}\" \"\${pr}\" \"\${exedir}\" \"\${bundle}/Contents/Frameworks/\" 1)
|
|
IF (NOT EXISTS \"\${\${kv}_RESOLVED_EMBEDDED_ITEM}\")
|
|
COPY_RESOLVED_FRAMEWORK_INTO_BUNDLE(\"\${\${kv}_RESOLVED_ITEM}\" \"\${\${kv}_RESOLVED_EMBEDDED_ITEM}\")
|
|
ENDIF ()
|
|
EXECUTE_PROCESS(COMMAND install_name_tool
|
|
-change \"\${pr}\" \"\${\${rkey}_EMBEDDED_ITEM}\" \"\${plugin}\"
|
|
)
|
|
ENDIF ()
|
|
ENDIF ()
|
|
|
|
ENDFOREACH()
|
|
")
|
|
ENDIF()
|
|
ELSE(Plugin_SRCS)
|
|
ADD_CUSTOM_TARGET(${Plugin_NAME} ALL
|
|
SOURCES ${Plugin_FILES} ${Plugin_TARGET_FILES}
|
|
)
|
|
ENDIF(Plugin_SRCS)
|