Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: n4ela от Декабрь 26, 2009, 23:53



Название: cmake пытаюсь собрать проект
Отправлено: n4ela от Декабрь 26, 2009, 23:53
Написал игру, хочу теперь написать удобную установку, пока что только для линукса.
В коре проекта есть два каталога data и src и файл CMakeLists.txt
Следующего содержимого:
Код
C++ (Qt)
project(qbattleship)
cmake_minimum_required(VERSION 2.8)
 
message(STATUS "System: " ${CMAKE_SYSTEM_NAME} " " ${CMAKE_SYSTEM_VERSION})
message(STATUS "Processor: " ${CMAKE_HOST_SYSTEM_PROCESSOR})
#message(${CMAKE_SYSTEM_NAME})
 
add_subdirectory(src)
В каталоге data еще два каталога sound(звук) и img(картинки)
В src исходные файлы, файл .desktop, файлы ресурсов, и файл который надо скопировать в HOME для правильноо отображения статистики.
Вот куда и как это надо все распихать?
CMakeLists.txt в каталоге src:
Код
C++ (Qt)
find_package( Qt4 REQUIRED )
set(QT_USE_QTSVG TRUE)
include( ${QT_USE_FILE} )
 
include_directories( ${CMAKE_CURRENT_BINARY_DIR} )
 
set(QBATTLESHIP_SRCS
 display.cpp
 field.cpp
 lsvgwidget.cpp
 rsvgwidget.cpp
 main.cpp
 mainwindow.cpp
 score.cpp)
 
set(QBATTLESHIP_HEAD
 display.h
 field.h
 lsvgwidget.h
 rsvgwidget.h
 mainwindow.h
 score.h)
 
qt4_wrap_cpp( MOC_SOURCES ${QBATTLESHIP_HEAD} )
 
set(QBATTLESHIP_FORM
 score.ui
 mainwindow.ui)
 
qt4_wrap_ui( UI_HEADERS ${QBATTLESHIP_FORM} )
 
set( IMG_FILES img.qrc )
 
qt4_add_resources( QRC_SOURCES ${IMG_FILES} )
 
add_executable (qbattleship masship.cpp nameimgship.cpp nameimgshoot.cpp ${QBATTLESHIP_SRCS} ${MOC_SOURCES} ${UI_HEADERS} ${QRC_SOURCES})
target_link_libraries (qbattleship ${QT_LIBRARIES})
 
#INSTALL_TARGETS(${CMAKE_INSTALL_PREFIX} qbattleship)
#install(TARGETS qbattleship ${INSTALL_TARGETS_DEFAULT_ARGS} )
#install(FILES qbattleship.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
И еще как включить что бы процесс компиляции выводился разным цветом. Пробовал SET(CMAKE_COLOR_MAKEFILE ON) ошибок не каких не выдает, но вывод все равно остается черно-белым.
Вот тут полностью проект http://github.com/n4ela/QBattleShip


Название: Re: cmake пытаюсь собрать проект
Отправлено: G-virus от Декабрь 27, 2009, 00:21
3D игра?


Название: Re: cmake пытаюсь собрать проект
Отправлено: n4ela от Декабрь 27, 2009, 00:22
Нет, обычный морской бой, похожий на кдешный(графика от туда) только с нормальными правилами и без зависимостей от кделиб


Название: Re: cmake пытаюсь собрать проект
Отправлено: G-virus от Декабрь 27, 2009, 01:07
Эх.....я думал 3D  :)


Название: Re: cmake пытаюсь собрать проект
Отправлено: n4ela от Декабрь 27, 2009, 03:49
Немного разобрался, подправил:
Код
C++ (Qt)
find_package( Qt4 REQUIRED )
set(QT_USE_QTSVG TRUE)
include( ${QT_USE_FILE} )
 
include_directories( ${CMAKE_CURRENT_BINARY_DIR} )
 
set(QBATTLESHIP_SRCS
 display.cpp
 field.cpp
 lsvgwidget.cpp
 rsvgwidget.cpp
 main.cpp
 mainwindow.cpp
 score.cpp)
 
set(QBATTLESHIP_HEAD
 display.h
 field.h
 lsvgwidget.h
 rsvgwidget.h
 mainwindow.h
 score.h)
 
qt4_wrap_cpp( MOC_SOURCES ${QBATTLESHIP_HEAD} )
 
set(QBATTLESHIP_FORM
 score.ui
 mainwindow.ui)
 
qt4_wrap_ui( UI_HEADERS ${QBATTLESHIP_FORM} )
 
set( IMG_FILES img.qrc )
 
qt4_add_resources( QRC_SOURCES ${IMG_FILES} )
 
add_executable (qbattleship masship.cpp nameimgship.cpp nameimgshoot.cpp ${QBATTLESHIP_SRCS} ${MOC_SOURCES} ${UI_HEADERS} ${QRC_SOURCES})
target_link_libraries (qbattleship ${QT_LIBRARIES})
 
INSTALL_FILES(/$ENV{HOME} .qbattleship)
INSTALL_FILES(/$ENV{HOME}/.local/share/applications .desktop qbattleship)
INSTALL_FILES(/$ENV{HOME}/.icons .png ${CMAKE_CURRENT_SOURCE_DIR}/../data/img/qbattleship)
 
INSTALL_TARGETS(/${CMAKE_INSTALL_PREFIX} qbattleship)
#INSTALL_TARGETS(${CMAKE_INSTALL_PREFIX} qbattleship)
#install(TARGETS qbattleship ${INSTALL_TARGETS_DEFAULT_ARGS} )
#install(FILES qbattleship.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
 
Вот так записывается вроде нормально, но осталось 2- вопроса:
1. Файл которые записывается в директорию пользователя принадлежит root'у(т.к. приходится запускать sudo make install) и писать в него может только он, а мне надо что бы он принадлежал пользователю.
2. Так и не разобрался с цветами


Название: Re: cmake пытаюсь собрать проект
Отправлено: BRE от Декабрь 27, 2009, 12:29
1. Файл которые записывается в директорию пользователя принадлежит root'у(т.к. приходится запускать sudo make install) и писать в него может только он, а мне надо что бы он принадлежал пользователю.
А для чего запускать sudo make install?
Запуск инсталляции из под root нужен при установке программы в общие папки. Если ты устанавливаешь ее в home, достаточно make install (права на запись в свою папку у пользователя есть).

Но лучше сразу делать правильно, т.е. настраивать установку на папку /usr (/usr/local), а файлы настройки генерировать в домашней папке при первом запуске программы пользователем.


Название: Re: cmake пытаюсь собрать проект
Отправлено: n4ela от Декабрь 27, 2009, 16:18
Ясно, спасибо, буде переделывать что бы конфигурационный файл устанавливался из программы.


Название: Re: cmake пытаюсь собрать проект
Отправлено: n4ela от Декабрь 31, 2009, 06:05
Проблема цвеат, была связана с настройками самого терминала(в screen'e почему то не отображаются цвета симейка)


Название: Re: cmake пытаюсь собрать проект
Отправлено: SABROG от Январь 06, 2010, 14:48
Такой вопрос, а инсталляция в данном случае ОС зависимая или на винде игра установиться в Documents and Settings?