Russian Qt Forum
Ноябрь 02, 2024, 23:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: cmake пытаюсь собрать проект  (Прочитано 6559 раз)
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
Записан
G-virus
Гость
« Ответ #1 : Декабрь 27, 2009, 00:21 »

3D игра?
Записан
n4ela
Гость
« Ответ #2 : Декабрь 27, 2009, 00:22 »

Нет, обычный морской бой, похожий на кдешный(графика от туда) только с нормальными правилами и без зависимостей от кделиб
Записан
G-virus
Гость
« Ответ #3 : Декабрь 27, 2009, 01:07 »

Эх.....я думал 3D  Улыбающийся
Записан
n4ela
Гость
« Ответ #4 : Декабрь 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. Так и не разобрался с цветами
Записан
BRE
Гость
« Ответ #5 : Декабрь 27, 2009, 12:29 »

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

Но лучше сразу делать правильно, т.е. настраивать установку на папку /usr (/usr/local), а файлы настройки генерировать в домашней папке при первом запуске программы пользователем.
« Последнее редактирование: Декабрь 27, 2009, 12:33 от BRE » Записан
n4ela
Гость
« Ответ #6 : Декабрь 27, 2009, 16:18 »

Ясно, спасибо, буде переделывать что бы конфигурационный файл устанавливался из программы.
Записан
n4ela
Гость
« Ответ #7 : Декабрь 31, 2009, 06:05 »

Проблема цвеат, была связана с настройками самого терминала(в screen'e почему то не отображаются цвета симейка)
Записан
SABROG
Гость
« Ответ #8 : Январь 06, 2010, 14:48 »

Такой вопрос, а инсталляция в данном случае ОС зависимая или на винде игра установиться в Documents and Settings?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.177 секунд. Запросов: 20.