Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added QtCreator project for Linux and Windows (MinGW) #4399

Closed
wants to merge 9 commits into from
16 changes: 16 additions & 0 deletions build/qtcreator/HelloCpp.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@

include(game.pri)

OBJECTS_DIR = $$shadowed($$PWD)/obj/$${TARGET}
MOC_DIR = $$shadowed($$PWD)/moc/$${TARGET}
RCC_DIR = $$shadowed($PWD)/rcc/$${TARGET}
UI_DIR = $$shadowed($$PWD)/ui/$${TARGET}

CC_GAME_ROOT = $${PWD}/../../samples/Cpp/HelloCpp
TARGET = $$cc_get_target_path($${CC_GAME_ROOT}/$${TARGET})

HEADERS += $$files($${CC_GAME_ROOT}/Classes/*.h)
SOURCES += $$files($${CC_GAME_ROOT}/Classes/*.cpp)

cocos2d_qt_api: SOURCES += $${CC_GAME_ROOT}/proj.qt5/main.cpp
cocos2d_native_api: SOURCES += $${CC_GAME_ROOT}/proj.$${CC_OS_TYPE}/main.cpp
16 changes: 16 additions & 0 deletions build/qtcreator/SimpleGame.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@

include(game.pri)

OBJECTS_DIR = $$shadowed($$PWD)/obj/$${TARGET}
MOC_DIR = $$shadowed($$PWD)/moc/$${TARGET}
RCC_DIR = $$shadowed($PWD)/rcc/$${TARGET}
UI_DIR = $$shadowed($$PWD)/ui/$${TARGET}

CC_GAME_ROOT = $${PWD}/../../samples/Cpp/SimpleGame
TARGET = $$cc_get_target_path($${CC_GAME_ROOT}/$${TARGET})

HEADERS += $$files($${CC_GAME_ROOT}/Classes/*.h)
SOURCES += $$files($${CC_GAME_ROOT}/Classes/*.cpp)

cocos2d_qt_api: SOURCES += $${CC_GAME_ROOT}/proj.qt5/main.cpp
cocos2d_native_api: SOURCES += $${CC_GAME_ROOT}/proj.$${CC_OS_TYPE}/main.cpp
140 changes: 140 additions & 0 deletions build/qtcreator/TestCpp.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@

include(game.pri)

OBJECTS_DIR = $$shadowed($$PWD)/obj/$${TARGET}
MOC_DIR = $$shadowed($$PWD)/moc/$${TARGET}
RCC_DIR = $$shadowed($PWD)/rcc/$${TARGET}
UI_DIR = $$shadowed($$PWD)/ui/$${TARGET}

CC_GAME_ROOT = $${PWD}/../../samples/Cpp/TestCpp
TARGET = $$cc_get_target_path($${CC_GAME_ROOT}/$${TARGET})

INCLUDEPATH += $${CC_GAME_ROOT}/Classes

TESTCPP_FOLDERS = \
ActionManagerTest \
ActionsEaseTest \
ActionsProgressTest \
ActionsTest \
Box2DTest \
Box2DTestBed \
BugsTest \
ChipmunkTest \
ClickAndMoveTest \
ClippingNodeTest \
CocosDenshionTest \
ConfigurationTest \
CurlTest \
CurrentLanguageTest \
DataVisitorTest \
DrawPrimitivesTest \
EffectsAdvancedTest \
EffectsTest \
ExtensionsTest \
FileUtilsTest \
FontTest \
InputTest \
IntervalTest \
KeyboardTest \
KeypadTest \
LabelTest \
LayerTest \
MenuTest \
MotionStreakTest \
MutiTouchTest \
NewEventDispatcherTest \
NodeTest \
ParallaxTest \
ParticleTest \
PerformanceTest \
PhysicsTest \
RenderTextureTest \
RotateWorldTest \
SceneTest \
SchedulerTest \
ShaderTest \
SpineTest \
SpriteTest \
TextInputTest \
Texture2dTest \
TextureCacheTest \
TexturePackerEncryptionTest \
TileMapTest \
TouchesTest \
TransitionsTest \
UserDefaultTest \
ZwoptexTest \
AccelerometerTest \
ExtensionsTest/NotificationCenterTest \
ExtensionsTest/Scale9SpriteTest \
ExtensionsTest/TableViewTest \
ExtensionsTest/CocosBuilderTest \
ExtensionsTest/CocoStudioArmatureTest \
ExtensionsTest/CocoStudioComponentsTest \
ExtensionsTest/CocoStudioGUITest \
ExtensionsTest/CocoStudioSceneTest \
ExtensionsTest/ControlExtensionTest \
ExtensionsTest/EditBoxTest \
Box2DTestBed/Tests \
BugsTest/Bug-458 \
ExtensionsTest/ControlExtensionTest/CCControlSliderTest \
ExtensionsTest/ControlExtensionTest/CCControlStepperTest \
ExtensionsTest/ControlExtensionTest/CCControlSwitchTest \
ExtensionsTest/ControlExtensionTest/CCControlButtonTest \
ExtensionsTest/ControlExtensionTest/CCControlColourPicker \
ExtensionsTest/ControlExtensionTest/CCControlPotentiometerTest \
ExtensionsTest/CocoStudioGUITest/UIScrollViewTest \
ExtensionsTest/CocoStudioGUITest/UISliderTest \
ExtensionsTest/CocoStudioGUITest/UITextAreaTest \
ExtensionsTest/CocoStudioGUITest/UITextButtonTest \
ExtensionsTest/CocoStudioGUITest/UITextFieldTest \
ExtensionsTest/CocoStudioGUITest/UIButtonTest \
ExtensionsTest/CocoStudioGUITest/UICheckBoxTest \
ExtensionsTest/CocoStudioGUITest/UIDragPanelTest \
ExtensionsTest/CocoStudioGUITest/UIImageViewTest \
ExtensionsTest/CocoStudioGUITest/UILabelAtlasTest \
ExtensionsTest/CocoStudioGUITest/UILabelBMFontTest \
ExtensionsTest/CocoStudioGUITest/UILabelTest \
ExtensionsTest/CocoStudioGUITest/UIListViewTest \
ExtensionsTest/CocoStudioGUITest/UILoadingBarTest \
ExtensionsTest/CocoStudioGUITest/UINodeContainerTest \
ExtensionsTest/CocoStudioGUITest/UIPageViewTest \
ExtensionsTest/CocoStudioGUITest/UIPanelTest \
ExtensionsTest/CocosBuilderTest/HelloCocosBuilder \
ExtensionsTest/CocosBuilderTest/LabelTest \
ExtensionsTest/CocosBuilderTest/MenuTest \
ExtensionsTest/CocosBuilderTest/ParticleSystemTest \
ExtensionsTest/CocosBuilderTest/ScrollViewTest \
ExtensionsTest/CocosBuilderTest/SpriteTest \
ExtensionsTest/CocosBuilderTest/TestHeader \
ExtensionsTest/CocosBuilderTest/TimelineCallbackTest \
ExtensionsTest/CocosBuilderTest/AnimationsTest \
ExtensionsTest/CocosBuilderTest/ButtonTest

HEADERS += $$files($${CC_GAME_ROOT}/Classes/*.h)
SOURCES += $$files($${CC_GAME_ROOT}/Classes/*.cpp)

for (FOLDER, TESTCPP_FOLDERS) {
HEADERS += $$files($${CC_GAME_ROOT}/Classes/$${FOLDER}/*.h)
SOURCES += $$files($${CC_GAME_ROOT}/Classes/$${FOLDER}/*.cpp)
}

HEADERS += $${CC_GAME_ROOT}/Classes/ExtensionsTest/NetworkTest/HttpClientTest.h
SOURCES += $${CC_GAME_ROOT}/Classes/ExtensionsTest/NetworkTest/HttpClientTest.cpp

!*linux-* {
HEADERS += \
$${CC_GAME_ROOT}/Classes/ExtensionsTest/NetworkTest/SocketIOTest.h \
$${CC_GAME_ROOT}/Classes/ExtensionsTest/NetworkTest/WebSocketTest.h
SOURCES += \
$${CC_GAME_ROOT}/Classes/ExtensionsTest/NetworkTest/SocketIOTest.cpp \
$${CC_GAME_ROOT}/Classes/ExtensionsTest/NetworkTest/WebSocketTest.cpp
}

cocos2d_qt_api {
SOURCES += $${CC_GAME_ROOT}/proj.qt5/main.cpp
}

cocos2d_native_api {
SOURCES += $${CC_GAME_ROOT}/proj.$${CC_OS_TYPE}/main.cpp
}
4 changes: 4 additions & 0 deletions build/qtcreator/cocos2dx-all.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
TEMPLATE = subdirs
CONFIG += ordered

SUBDIRS += libcocos2dx.pro SimpleGame.pro HelloCpp.pro TestCpp.pro
138 changes: 138 additions & 0 deletions build/qtcreator/common.prf
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@

CC_ROOT = $${PWD}/../../
CC_ARCH_SUFFIX = 32-bit
contains(QMAKE_HOST.arch, x86_64):CC_ARCH_SUFFIX = 64-bit

CC_OS_TYPE = linux
win32: CC_OS_TYPE = win32
macx: CC_OS_TYPE = mac

# @return Path for $TARGET variable rebased to given directory
# @param dir Directory to put executable file
defineReplace(cc_get_target_path) {
dir = $$1
result = $$relative_path($${dir}, $$shadowed($$PWD))
win32 {
result = ../$${result}
}
return($$result)
}

# @return Add include paths to search external library in cocos distribution.
# @param name Name of library to link with.
defineReplace(cc_include_library) {
name = $$1
result = $$clean_path($${CC_ROOT}external/$${name}/include/$${CC_OS_TYPE})
return($$result)
}

# @return Linker commands to link with static library.
# @param name Name of library to link with.
defineReplace(cc_prebuilt_library) {
relpath = $$1
name = $$2
isEmpty(name):name = $$1
path1 = $${CC_ROOT}external/$${relpath}/prebuilt/$${CC_OS_TYPE}/$${CC_ARCH_SUFFIX}
path2 = $${CC_ROOT}external/$${relpath}/prebuilt/$${CC_OS_TYPE}
result = -L$$quote($$clean_path($$path1))
result = -L$$quote($$clean_path($$path2))
win32-msvc*: {
result += -l$$quote($$name)
} else {
result += -Wl,-Bstatic -l$${name} -Wl,-Bdynamic
}
return($$result)
}

include(user_configuration.prf)
include(common_linux.prf)
include(common_win32.prf)

CONFIG += c++11

*macx-* {
QMAKE_CXXFLAGS += -stdlib=libc++
CC_OS_TYPE = mac
export(CC_OS_TYPE)
}

CONFIG(debug, debug|release) {
DEFINES += COCOS2D_DEBUG=1 _DEBUG
CC_BUILD_TYPE = debug
} else {
DEFINES += COCOS2D_DEBUG=0 NDEBUG
CC_BUILD_TYPE = release
}

CC_LIB_LOCATION = $${CC_ROOT}/lib/$${CC_OS_TYPE}/$${CC_BUILD_TYPE}

INCLUDEPATH += \
$${CC_ROOT} \
$${CC_ROOT}/cocos \
$${CC_ROOT}/cocos/base \
$${CC_ROOT}/cocos/2d \
$${CC_ROOT}/cocos/physics \
$${CC_ROOT}/cocos/gui \
$${CC_ROOT}/cocos/editor-support \
$${CC_ROOT}/cocos/audio/include \
$${CC_ROOT}/cocos/math/kazmath/include \
$${CC_ROOT}/extensions \
$${CC_ROOT}/external \
$${CC_ROOT}/external/chipmunk/include/chipmunk \
$${CC_ROOT}/external/tinyxml2 \
$${CC_ROOT}/external/unzip \
$${CC_ROOT}/external/Box2D \
$$cc_include_library(webp) \
$$cc_include_library(freetype2) \
$$cc_include_library(curl) \
$$cc_include_library(websockets) \
$$cc_include_library(png) \
$$cc_include_library(tiff) \
$$cc_include_library(jpeg)

cocos2d_qt_api {
DEFINES += CC_TARGET_QT5
INCLUDEPATH += $${CC_ROOT}/cocos/2d/platform/qt5
# Sensors module needed for CCAccelerometer
QT += sensors
# CocosDenshion (audio library)
QT += multimedia
}

cocos2d_native_api {
CONFIG -= qt
INCLUDEPATH += \
$${CC_ROOT}/cocos/2d/platform/$${CC_OS_TYPE} \
$$cc_include_library(glfw3)
}

cocos2d_chipmunk {
DEFINES += CC_ENABLE_CHIPMUNK_INTEGRATION
}

cocos2d_box2d {
DEFINES += CC_ENABLE_BOX2D_INTEGRATION
}

LINK_AGAINST_COCOS2DX = -L$${CC_LIB_LOCATION} -lcocos2dx $${CC_EXTERNAL_LIBS}

# Disable some warnings to make compiler output easier to read during development
DISABLED_WARNINGS = \
-Wno-ignored-qualifiers \
-Wno-unused-parameter \
-Wno-sign-compare -Wno-unused-variable

*-g++* {
DISABLED_WARNINGS += -Wno-psabi
QMAKE_CFLAGS += -std=gnu99
}

*-g++*|*-clang* {
QMAKE_CXXFLAGS_WARN_ON += $${DISABLED_WARNINGS} -Wno-reorder
QMAKE_CFLAGS_WARN_ON += $${DISABLED_WARNINGS}
}

win32-msvc* {
QMAKE_CXXFLAGS_WARN_ON += -wd4100 -wd4244
QMAKE_CFLAGS_WARN_ON += -wd4100 -wd4244
}
29 changes: 29 additions & 0 deletions build/qtcreator/common_linux.prf
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@

# Linux-specific definitions for cococ2d and your game.

*linux-* {
INCLUDEPATH += /usr/include/freetype2/
}

cocos2d_native_api {

*linux-* {
DEFINES += LINUX ENABLE_MPG123

exists(/usr/local/include/GLFW/) {
INCLUDEPATH += /usr/local/include/GLFW/
} else {
INCLUDEPATH += /usr/include/GLFW/
}

CC_EXTERNAL_LIBS += \
-lrt -lz \
-ljpeg -ltiff -lpng \
-lfontconfig -lfreetype -lcurl \
-lGLEW -lX11 -lfontconfig -lpthread -lGL -lglfw \
-lmpg123 -logg -lvorbis -lvorbisfile -lopenal -lalut \
$$cc_prebuilt_library(webp)

export(CC_EXTERNAL_LIBS)
}
}
Loading