473 lines
17 KiB
CMake
473 lines
17 KiB
CMake
PROJECT( companion )
|
|
|
|
SET( C9X_VERSION_MAJOR "1" )
|
|
SET( C9X_VERSION_MINOR "99" )
|
|
SET( C9X_VERSION ${C9X_VERSION_MAJOR}.${C9X_VERSION_MINOR} )
|
|
|
|
CMAKE_MINIMUM_REQUIRED( VERSION 2.8 )
|
|
|
|
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
|
|
|
|
MESSAGE( STATUS "Looking for XercesC " )
|
|
FIND_PACKAGE(XercesC)
|
|
IF ( XERCESC_FOUND )
|
|
INCLUDE_DIRECTORIES( ${XERCESC_INCLUDE_DIR} )
|
|
SET(LidarFormat_LIBRAIRIES ${LidarFormat_LIBRAIRIES} ${XERCESC_LIBRARIES})
|
|
ELSE()
|
|
MESSAGE( FATAL_ERROR "XercesC not found! Please set XercesC path ..." )
|
|
ENDIF()
|
|
|
|
MESSAGE( STATUS "Looking for Xsd " )
|
|
FIND_PACKAGE(Xsd)
|
|
IF ( XSD_FOUND )
|
|
INCLUDE_DIRECTORIES( ${XSD_INCLUDE_DIR} )
|
|
MESSAGE("XSD Include Path: " ${XSD_INCLUDE_DIR} )
|
|
ELSE()
|
|
MESSAGE( FATAL_ERROR "XSD not found! Please set XSD path ..." )
|
|
ENDIF()
|
|
|
|
MESSAGE( STATUS "Looking for SDL " )
|
|
FIND_PACKAGE(Sdl)
|
|
IF ( SDL_FOUND )
|
|
INCLUDE_DIRECTORIES( ${SDL_INCLUDE_DIR} )
|
|
MESSAGE("SDL Include Path: " ${SDL_INCLUDE_DIR} )
|
|
ADD_DEFINITIONS( -DJOYSTICKS )
|
|
ELSE()
|
|
MESSAGE( "SDL not found! Joysticks support will be disabled" )
|
|
ENDIF()
|
|
|
|
FIND_PACKAGE(Qt4 4.8.4 REQUIRED)
|
|
SET( QT_USE_QTNETWORK True )
|
|
SET( QT_USE_QTXML True )
|
|
INCLUDE( ${QT_USE_FILE} )
|
|
|
|
IF ( APPLE )
|
|
MESSAGE( STATUS "Phonon still not supported on APPLE " )
|
|
ELSE()
|
|
MESSAGE( STATUS "Looking for PHONON " )
|
|
FIND_PACKAGE(Phonon)
|
|
IF ( PHONON_FOUND )
|
|
INCLUDE_DIRECTORIES( ${PHONO_INCLUDE_DIR} )
|
|
MESSAGE("PHONON Include Path: " ${PHONON_INCLUDE_DIR} )
|
|
ADD_DEFINITIONS( -DPHONON )
|
|
ELSE()
|
|
MESSAGE( "PHONON not found!" )
|
|
ENDIF()
|
|
ENDIF()
|
|
|
|
ADD_CUSTOM_COMMAND(
|
|
COMMAND ${XSDCXX_EXECUTABLE} cxx-tree --root-element-all --generate-serialization --output-dir ${PROJECT_BINARY_DIR}/ ${PROJECT_SOURCE_DIR}/radio.xsd
|
|
OUTPUT ${PROJECT_BINARY_DIR}/radio.hxx ${PROJECT_BINARY_DIR}/radio.cxx
|
|
DEPENDS ${PROJECT_SOURCE_DIR}/radio.xsd
|
|
)
|
|
|
|
IF( MSVC )
|
|
SET(CMAKE_CXX_FLAGS "/EHsc /LD")
|
|
INCLUDE_DIRECTORIES( ${PROJECT_SOURCE_DIR}/winbuild C:/Programs/pthreads/Pre-built.2/include C:/Programs/msinttypes)
|
|
LINK_DIRECTORIES( C:/Programs/pthreads/Pre-built.2/lib/ )
|
|
SET( PTHREAD_LIBRARY pthreadVC2.lib )
|
|
ELSE( )
|
|
SET( PTHREAD_LIBRARY pthread )
|
|
ADD_DEFINITIONS( -Wall )
|
|
LINK_DIRECTORIES( /usr/local/lib )
|
|
ENDIF( )
|
|
|
|
set(RADIO_SRC_DIRECTORY ${PROJECT_SOURCE_DIR}/../../radio/src)
|
|
set(SIMU_SRC_DIRECTORY ${PROJECT_SOURCE_DIR}/simulation)
|
|
set(COMPANION_SRC_DIRECTORY ${PROJECT_SOURCE_DIR})
|
|
|
|
add_custom_command(
|
|
OUTPUT ${RADIO_SRC_DIRECTORY}/bitmaps/sticks.lbm
|
|
COMMAND make lbm
|
|
DEPENDS ${RADIO_SRC_DIRECTORY}/bitmaps/sticks_4x1.xbm
|
|
WORKING_DIRECTORY ${RADIO_SRC_DIRECTORY}
|
|
)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${RADIO_SRC_DIRECTORY}/translations/en.h
|
|
COMMAND make tra
|
|
DEPENDS ${RADIO_SRC_DIRECTORY}/translations/en.h.txt
|
|
WORKING_DIRECTORY ${RADIO_SRC_DIRECTORY}
|
|
)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${RADIO_SRC_DIRECTORY}/stamp-opentx.h
|
|
COMMAND make stamp_header
|
|
DEPENDS ${RADIO_SRC_DIRECTORY}/Makefile
|
|
WORKING_DIRECTORY ${RADIO_SRC_DIRECTORY}
|
|
)
|
|
|
|
include_directories(
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
${PROJECT_SOURCE_DIR}/../..
|
|
${SIMU_SRC_DIRECTORY}
|
|
${RADIO_SRC_DIRECTORY}
|
|
${RADIO_SRC_DIRECTORY}/fonts/std
|
|
${RADIO_SRC_DIRECTORY}/lua/src
|
|
${XSD_INCLUDE_DIR}
|
|
)
|
|
|
|
add_subdirectory(modeledit)
|
|
add_subdirectory(simulation)
|
|
|
|
set(companion_SRCS
|
|
eeprominterface.cpp
|
|
hexinterface.cpp
|
|
flashinterface.cpp
|
|
file.cpp
|
|
xmlinterface.cpp
|
|
${PROJECT_BINARY_DIR}/radio.cxx
|
|
firmwares/th9x/th9xeeprom.cpp
|
|
firmwares/th9x/th9xinterface.cpp
|
|
firmwares/er9x/er9xeeprom.cpp
|
|
firmwares/er9x/er9xinterface.cpp
|
|
firmwares/gruvin9x/gruvin9xeeprom.cpp
|
|
firmwares/gruvin9x/gruvin9xinterface.cpp
|
|
firmwares/opentx/opentxeeprom.cpp
|
|
firmwares/opentx/open9xStockeeprom.cpp
|
|
firmwares/opentx/open9xGruvin9xeeprom.cpp
|
|
firmwares/opentx/open9xSky9xeeprom.cpp
|
|
firmwares/opentx/opentxinterface.cpp
|
|
firmwares/opentx/opentxTaranisSimulator.cpp
|
|
firmwares/opentx/opentxSky9xsimulator.cpp
|
|
firmwares/opentx/opentxGruvin9xsimulator.cpp
|
|
firmwares/opentx/opentxM128simulator.cpp
|
|
firmwares/opentx/opentxsimulator.cpp
|
|
firmwares/ersky9x/ersky9xeeprom.cpp
|
|
firmwares/ersky9x/ersky9xinterface.cpp
|
|
${RADIO_SRC_DIRECTORY}/stamp-opentx.h
|
|
${RADIO_SRC_DIRECTORY}/bitmaps/sticks.lbm
|
|
${RADIO_SRC_DIRECTORY}/translations/en.h
|
|
appdata.cpp
|
|
helpers.cpp
|
|
mdichild.cpp
|
|
generaledit.cpp
|
|
modelslist.cpp
|
|
mountlist.cpp
|
|
avroutputdialog.cpp
|
|
apppreferencesdialog.cpp
|
|
fwpreferencesdialog.cpp
|
|
burnconfigdialog.cpp
|
|
comparedialog.cpp
|
|
contributorsdialog.cpp
|
|
customizesplashdialog.cpp
|
|
burndialog.cpp
|
|
printdialog.cpp
|
|
fusesdialog.cpp
|
|
logsdialog.cpp
|
|
downloaddialog.cpp
|
|
splashlibrary.cpp
|
|
mainwindow.cpp
|
|
companion.cpp
|
|
taranisnotfound.cpp
|
|
qcustomplot.cpp
|
|
wizarddata.cpp
|
|
wizarddialog.cpp
|
|
)
|
|
|
|
set(companion_MOC_HDRS
|
|
avroutputdialog.h
|
|
apppreferencesdialog.h
|
|
fwpreferencesdialog.h
|
|
burnconfigdialog.h
|
|
comparedialog.h
|
|
printdialog.h
|
|
fusesdialog.h
|
|
logsdialog.h
|
|
contributorsdialog.h
|
|
customizesplashdialog.h
|
|
splashlibrary.h
|
|
splashlabel.h
|
|
burndialog.h
|
|
downloaddialog.h
|
|
generaledit.h
|
|
modelslist.h
|
|
mdichild.h
|
|
mainwindow.h
|
|
taranisnotfound.h
|
|
qcustomplot.h
|
|
helpers.h
|
|
wizarddialog.h
|
|
)
|
|
|
|
set(companion_UIS
|
|
mdichild.ui
|
|
avroutputdialog.ui
|
|
comparedialog.ui
|
|
fusesdialog.ui
|
|
logsdialog.ui
|
|
apppreferencesdialog.ui
|
|
fwpreferencesdialog.ui
|
|
burnconfigdialog.ui
|
|
downloaddialog.ui
|
|
generaledit.ui
|
|
printdialog.ui
|
|
contributorsdialog.ui
|
|
customizesplashdialog.ui
|
|
splashlibrary.ui
|
|
burndialog.ui
|
|
taranisnotfound.ui
|
|
)
|
|
|
|
set(companion_RCS
|
|
companion.qrc
|
|
${CMAKE_CURRENT_BINARY_DIR}/translations.qrc
|
|
)
|
|
|
|
MACRO (TODAY RESULT)
|
|
IF (WIN32)
|
|
EXECUTE_PROCESS(COMMAND "cmd" " /C date /T" OUTPUT_VARIABLE ${RESULT})
|
|
string(REGEX REPLACE "(..)/(..)/(....).*" "\\1.\\2.\\3" ${RESULT} ${${RESULT}})
|
|
ELSEIF(UNIX)
|
|
EXECUTE_PROCESS(COMMAND "date" "+%d/%m/%Y" OUTPUT_VARIABLE ${RESULT})
|
|
string(REGEX REPLACE "(..)/(..)/(....).*" "\\1.\\2.\\3" ${RESULT} ${${RESULT}})
|
|
ELSE (WIN32)
|
|
MESSAGE(SEND_ERROR "date not implemented")
|
|
SET(${RESULT} 00.00.0000)
|
|
ENDIF (WIN32)
|
|
ENDMACRO (TODAY)
|
|
|
|
MACRO (NOW RESULT)
|
|
IF (WIN32)
|
|
EXECUTE_PROCESS(COMMAND "cmd" " /C time /T" OUTPUT_VARIABLE ${RESULT})
|
|
string(REGEX REPLACE "(..):(..).*" "\\1:\\2:00" ${RESULT} ${${RESULT}})
|
|
ELSEIF(UNIX)
|
|
EXECUTE_PROCESS(COMMAND "date" "+%H:%M:%S" OUTPUT_VARIABLE ${RESULT})
|
|
string(REGEX REPLACE "(..):(..):(..).*" "\\1:\\2:\\3" ${RESULT} ${${RESULT}})
|
|
ELSE (WIN32)
|
|
MESSAGE(SEND_ERROR "time not implemented")
|
|
SET(${RESULT} 00:00:00)
|
|
ENDIF (WIN32)
|
|
ENDMACRO (NOW)
|
|
|
|
TODAY(DATE)
|
|
NOW(TIME)
|
|
|
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/version.h @ONLY)
|
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/translations.qrc.in ${CMAKE_CURRENT_BINARY_DIR}/translations.qrc @ONLY)
|
|
|
|
# Subversion_WC_INFO( ${PROJECT_SOURCE_DIR}/../${FIRMWARE} G9X )
|
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/firmwares/opentx/stamp-opentx.h.in ${CMAKE_CURRENT_BINARY_DIR}/stamp-opentx.h @ONLY)
|
|
|
|
IF( WIN32 )
|
|
SET( companion_SRCS ${companion_SRCS} icon.rc )
|
|
IF ( NOT MSVC )
|
|
SET(CMAKE_EXE_LINKER_FLAGS -mwindows)
|
|
ENDIF( )
|
|
ENDIF( )
|
|
|
|
INCLUDE_DIRECTORIES( ${CMAKE_BINARY_DIR} )
|
|
INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR} )
|
|
|
|
SET( LANGUAGES he pl pt ru de fr it sv cs fi nl)
|
|
FOREACH( language ${LANGUAGES} )
|
|
SET( companion_TS ${companion_TS} translations/companion_${language}.ts )
|
|
ENDFOREACH( language )
|
|
|
|
QT4_WRAP_UI( companion_SRCS ${companion_UIS} )
|
|
QT4_WRAP_CPP( companion_SRCS ${companion_MOC_HDRS} )
|
|
QT4_ADD_TRANSLATION( companion_QM ${companion_TS} )
|
|
QT4_ADD_RESOURCES( companion_SRCS ${companion_RCS} )
|
|
|
|
ADD_DEFINITIONS( -DQT_TRANSLATIONS_DIR="${QT_TRANSLATIONS_DIR}" )
|
|
|
|
IF( APPLE )
|
|
ADD_EXECUTABLE( ${PROJECT_NAME} MACOSX_BUNDLE ${companion_SRCS} ${companion_QM} )
|
|
ELSE( )
|
|
ADD_EXECUTABLE( ${PROJECT_NAME} WIN32 ${companion_SRCS} ${companion_QM} )
|
|
ENDIF( )
|
|
|
|
TARGET_LINK_LIBRARIES( ${PROJECT_NAME} modeledit simulation ${QT_LIBRARIES} ${QT_QTMAIN_LIBRARY} ${XERCESC_LIBRARY} ${PTHREAD_LIBRARY} ${SDL_LIBRARY} ${PHONON_LIBS} )
|
|
|
|
############# Standalone simu ###############
|
|
|
|
set(TH9X_CHECKOUT_DIRECTORY ${PROJECT_BINARY_DIR}/firmwares/th9x)
|
|
add_custom_command(
|
|
OUTPUT ${TH9X_CHECKOUT_DIRECTORY}/th9xsimulator.cpp
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${TH9X_CHECKOUT_DIRECTORY}
|
|
COMMAND cd ${TH9X_CHECKOUT_DIRECTORY} && svn checkout http://th9x.googlecode.com/svn/trunk/src@285 .
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/firmwares/th9x/th9xsimulator.cpp ${TH9X_CHECKOUT_DIRECTORY}
|
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/firmwares/th9x/th9xsimulator.cpp
|
|
)
|
|
|
|
set(ER9X_CHECKOUT_DIRECTORY ${PROJECT_BINARY_DIR}/firmwares/er9x)
|
|
add_custom_command(
|
|
OUTPUT ${ER9X_CHECKOUT_DIRECTORY}/er9xsimulator.cpp
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${ER9X_CHECKOUT_DIRECTORY}
|
|
COMMAND cd ${ER9X_CHECKOUT_DIRECTORY} && svn checkout http://er9x.googlecode.com/svn/trunk/src@790 .
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/firmwares/er9x/er9xsimulator.cpp ${ER9X_CHECKOUT_DIRECTORY}
|
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/firmwares/er9x/er9xsimulator.cpp
|
|
)
|
|
|
|
set(ERSKY9X_CHECKOUT_DIRECTORY ${PROJECT_BINARY_DIR}/firmwares/ersky9x)
|
|
add_custom_command(
|
|
OUTPUT ${ERSKY9X_CHECKOUT_DIRECTORY}/ersky9xsimulator.cpp
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${ERSKY9X_CHECKOUT_DIRECTORY}
|
|
COMMAND cd ${ERSKY9X_CHECKOUT_DIRECTORY} && svn checkout http://ersky9x.googlecode.com/svn/trunk/src@170 .
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/firmwares/ersky9x/ersky9xsimulator.cpp ${ERSKY9X_CHECKOUT_DIRECTORY}
|
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/firmwares/ersky9x/ersky9xsimulator.cpp
|
|
)
|
|
|
|
set(simu_SRCS
|
|
eeprominterface.cpp
|
|
firmwares/th9x/th9xeeprom.cpp # TODO not needed
|
|
firmwares/th9x/th9xinterface.cpp
|
|
${TH9X_CHECKOUT_DIRECTORY}/th9xsimulator.cpp
|
|
firmwares/er9x/er9xeeprom.cpp # TODO not needed
|
|
firmwares/er9x/er9xinterface.cpp
|
|
${ER9X_CHECKOUT_DIRECTORY}/er9xsimulator.cpp
|
|
firmwares/gruvin9x/gruvin9xeeprom.cpp # TODO not needed
|
|
firmwares/gruvin9x/gruvin9xinterface.cpp
|
|
firmwares/opentx/opentxeeprom.cpp # TODO not needed
|
|
firmwares/opentx/open9xStockeeprom.cpp # TODO not needed
|
|
firmwares/opentx/open9xGruvin9xeeprom.cpp # TODO not needed
|
|
firmwares/opentx/open9xSky9xeeprom.cpp # TODO not needed
|
|
firmwares/opentx/opentxinterface.cpp
|
|
firmwares/opentx/opentxTaranisSimulator.cpp
|
|
firmwares/opentx/opentxSky9xsimulator.cpp
|
|
firmwares/opentx/opentxGruvin9xsimulator.cpp
|
|
firmwares/opentx/opentxM128simulator.cpp
|
|
firmwares/opentx/opentxsimulator.cpp
|
|
firmwares/ersky9x/ersky9xeeprom.cpp # TODO not needed
|
|
firmwares/ersky9x/ersky9xinterface.cpp
|
|
${ERSKY9X_CHECKOUT_DIRECTORY}/ersky9xsimulator.cpp
|
|
${RADIO_SRC_DIRECTORY}/bitmaps/sticks.lbm
|
|
${RADIO_SRC_DIRECTORY}/translations/en.h
|
|
file.cpp # TODO not needed
|
|
modeledit/node.cpp
|
|
modeledit/edge.cpp # TODO not needed
|
|
appdata.cpp
|
|
simulator.cpp
|
|
)
|
|
|
|
set(simu_HDRS
|
|
modeledit/node.h
|
|
)
|
|
|
|
qt4_wrap_cpp(simu_SRCS ${simu_HDRS} )
|
|
qt4_add_resources(simu_SRCS companion.qrc) # TODO not needed
|
|
|
|
if(WIN32)
|
|
set(simu_SRCS ${simu_SRCS} icon.rc)
|
|
endif()
|
|
|
|
add_executable(simulator WIN32 ${simu_SRCS})
|
|
|
|
if(SDL_FOUND)
|
|
target_link_libraries(simulator simulation ${QT_LIBRARIES} ${PTHREAD_LIBRARY} ${SDL_LIBRARY} ${PHONON_LIBS})
|
|
else()
|
|
target_link_libraries(simulator simulation ${QT_LIBRARIES} ${QT_QTMAIN_LIBRARY} ${PTHREAD_LIBRARY} ${SDL_LIBRARY} ${PHONON_LIBS})
|
|
endif()
|
|
|
|
############# Packaging ####################
|
|
|
|
IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|
INSTALL( TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin )
|
|
INSTALL( FILES companion.desktop DESTINATION share/applications )
|
|
INSTALL( FILES images/linuxicons/16x16/companion.png DESTINATION /usr/share/icons/hicolor/16x16/apps )
|
|
INSTALL( FILES images/linuxicons/22x22/companion.png DESTINATION /usr/share/icons/hicolor/22x22/apps )
|
|
INSTALL( FILES images/linuxicons/24x24/companion.png DESTINATION /usr/share/icons/hicolor/24x24/apps )
|
|
INSTALL( FILES images/linuxicons/32x32/companion.png DESTINATION /usr/share/icons/hicolor/32x32/apps )
|
|
INSTALL( FILES images/linuxicons/48x48/companion.png DESTINATION /usr/share/icons/hicolor/48x48/apps )
|
|
INSTALL( FILES images/linuxicons/128x128/companion.png DESTINATION /usr/share/icons/hicolor/128x128/apps )
|
|
INSTALL( FILES images/linuxicons/256x256/companion.png DESTINATION /usr/share/icons/hicolor/256x256/apps )
|
|
INSTALL( FILES images/linuxicons/512x512/companion.png DESTINATION /usr/share/icons/hicolor/512x512/apps )
|
|
INSTALL( FILES images/linuxicons/scalable/companion.svg DESTINATION /usr/share/icons/hicolor/scalable/apps )
|
|
INSTALL( FILES ../targets/linux/45-taranis.rules DESTINATION /etc/udev/rules.d/ )
|
|
# Linux specific code
|
|
SET(OperatingSystem "Linux")
|
|
ELSE (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|
INSTALL( TARGETS ${PROJECT_NAME} DESTINATION ${QT_BINARY_DIR} )
|
|
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|
|
|
IF( WIN32 )
|
|
IF( MSVC )
|
|
SET( NSI_IN_FILE companion-vs.nsi.in )
|
|
ELSE( )
|
|
SET( NSI_IN_FILE companion-msys.nsi.in )
|
|
ENDIF( )
|
|
|
|
SET( SYSDIR "$ENV{windir}/system32" )
|
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/../targets/windows/${NSI_IN_FILE} ${CMAKE_CURRENT_BINARY_DIR}/companion.nsi @ONLY)
|
|
|
|
FIND_PROGRAM(NSIS_EXE makensis.exe PATHS
|
|
"C:/Program Files/NSIS"
|
|
"C:/Program Files (x86)/NSIS"
|
|
"C:/Programs/NSIS"
|
|
)
|
|
|
|
ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_BINARY_DIR}/companionInstall.exe
|
|
COMMAND "${NSIS_EXE}" ARGS companion.nsi
|
|
DEPENDS ${PROJECT_NAME} simulator ${PROJECT_BINARY_DIR}/companion.nsi
|
|
COMMENT "Windows NSIS Installer")
|
|
|
|
ADD_CUSTOM_TARGET( installer
|
|
DEPENDS ${PROJECT_BINARY_DIR}/companionInstall.exe
|
|
SOURCES ${PROJECT_BINARY_DIR}/companion.nsi
|
|
)
|
|
ENDIF( )
|
|
|
|
IF( APPLE )
|
|
SET(MACOSX_BUNDLE_ICON_FILE iconmac.icns)
|
|
IF( CMAKE_GENERATOR STREQUAL Xcode )
|
|
SET( WORK_DIR ${CMAKE_BINARY_DIR}/Debug )
|
|
ELSE( )
|
|
SET( WORK_DIR ${PROJECT_BINARY_DIR} )
|
|
ENDIF()
|
|
|
|
ADD_CUSTOM_TARGET( addframeworks ALL
|
|
COMMAND mkdir -p companion.app/Contents/Frameworks
|
|
COMMAND mkdir -p companion.app/Contents/Resources
|
|
COMMAND mkdir -p companion.app/Contents/translations
|
|
COMMAND rsync ${PROJECT_SOURCE_DIR}/images/${MACOSX_BUNDLE_ICON_FILE} companion.app/Contents/Resources/${MACOSX_BUNDLE_ICON_FILE} # Copy the icon files
|
|
COMMAND rsync ${PROJECT_SOURCE_DIR}/../targets/mac/lib* companion.app/Contents/Frameworks
|
|
#COMMAND rsync ${PROJECT_SOURCE_DIR}/../targets/mac/libcrypto.1.0.0.dylib companion.app/Contents/Frameworks
|
|
COMMAND rsync -r --exclude=.svn ${PROJECT_SOURCE_DIR}/../targets/mac/qt_menu.nib companion.app/Contents/Resources/
|
|
COMMAND rsync ${PROJECT_BINARY_DIR}/*.qm companion.app/Contents/translations
|
|
COMMAND ${QT_BINARY_DIR}/macdeployqt companion.app
|
|
WORKING_DIRECTORY ${WORK_DIR}
|
|
DEPENDS ${PROJECT_NAME} )
|
|
|
|
|
|
ADD_CUSTOM_TARGET( makedmg
|
|
COMMAND ${QT_BINARY_DIR}/macdeployqt companion.app -dmg -no-plugins
|
|
WORKING_DIRECTORY ${WORK_DIR}
|
|
DEPENDS addframeworks )
|
|
|
|
ENDIF( )
|
|
|
|
ADD_CUSTOM_TARGET( stamp
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/version.h ${CMAKE_SOURCE_DIR}/../companion.stamp
|
|
DEPENDS ${CMAKE_BINARY_DIR}/version.h )
|
|
|
|
ADD_CUSTOM_TARGET( translations
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
COMMAND lupdate-qt4 ${CMAKE_SOURCE_DIR} -ts ${companion_TS} )
|
|
|
|
SET(CPACK_PACKAGE_NAME "COMPANION")
|
|
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Models and settings editor for the OpenTx open source firmware")
|
|
string(TOLOWER "${CPACK_PACKAGE_NAME}" CPACK_PACKAGE_NAME_LOWERCASE)
|
|
find_program(DPKG_PROGRAM dpkg DOC "dpkg program of Debian-based systems")
|
|
if(DPKG_PROGRAM)
|
|
SET(CPACK_GENERATOR "DEB")
|
|
execute_process(
|
|
COMMAND ${DPKG_PROGRAM} --print-architecture
|
|
OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME_LOWERCASE}_${C9X_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
|
|
SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Romolo Manfredini <romolo.manfredini-nosp@m-gmail.com>")
|
|
SET(CPACK_DEBIAN_PACKAGE_VERSION ${C9X_VERSION})
|
|
SET(CPACK_DEBIAN_PACKAGE_VERSION_MAJOR ${C9X_VERSION_MAJOR})
|
|
SET(CPACK_DEBIAN_PACKAGE_VERSION_MINOR ${C9X_VERSION_MINOR})
|
|
SET(CPACK_DEBIAN_ARCHITECTURE $(CMAKE_SYSTEM_PROCESSOR))
|
|
SET(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
|
else(DPKG_PROGRAM)
|
|
SET(CPACK_GENERATOR "RPM")
|
|
SET(CPACK_RPM_PACKAGE_VERSION ${C9X_VERSION})
|
|
SET(CPACK_RPM_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION_SUMMARY})
|
|
SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME_LOWERCASE}-${C9X_VERSION}-${CMAKE_SYSTEM_PROCESSOR}")
|
|
endif(DPKG_PROGRAM)
|
|
|
|
INCLUDE(CPack)
|