cmake_minimum_required(VERSION 2.6) set(APP_NAME HelloLua) project (${APP_NAME}) include(cocos2d-x/build/BuildHelpers.CMakeLists.txt) option(USE_CHIPMUNK "Use chipmunk for physics library" ON) option(USE_BOX2D "Use box2d for physics library" OFF) option(DEBUG_MODE "Debug or release?" ON) if(DEBUG_MODE) set(CMAKE_BUILD_TYPE DEBUG) else(DEBUG_MODE) set(CMAKE_BUILD_TYPE RELEASE) endif(DEBUG_MODE) set(CMAKE_C_FLAGS_DEBUG "-g -Wall -DCOCOS2D_DEBUG=1") set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG}) set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-std=c99") set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-std=c++11") if(USE_CHIPMUNK) message("Using chipmunk ...") add_definitions(-DLINUX -DCC_ENABLE_CHIPMUNK_INTEGRATION=1) elseif(USE_BOX2D) message("Using box2d ...") add_definitions(-DLINUX -DCC_ENABLE_BOX2D_INTEGRATION=1) else(USE_CHIPMUNK) message(FATAL_ERROR "Must choose a physics library.") endif(USE_CHIPMUNK) # architecture if ( CMAKE_SIZEOF_VOID_P EQUAL 8 ) set(ARCH_DIR "64-bit") else() set(ARCH_DIR "32-bit") endif() set(GAME_SRC runtime-src/proj.linux/main.cpp runtime-src/Classes/AppDelegate.cpp ) set(COCOS2D_ROOT ${CMAKE_SOURCE_DIR}/cocos2d-x) include_directories( /usr/include /usr/include/GLFW /usr/local/include/GLFW runtime-src/Classes ${COCOS2D_ROOT}/cocos/scripting/lua-bindings/manual ${COCOS2D_ROOT}/cocos/scripting/lua-bindings/auto ${COCOS2D_ROOT}/external/lua/lua ${COCOS2D_ROOT}/external/lua/tolua ${COCOS2D_ROOT} ${COCOS2D_ROOT}/cocos ${COCOS2D_ROOT}/cocos/audio/include ${COCOS2D_ROOT}/cocos/platform ${COCOS2D_ROOT}/cocos/platform/desktop ${COCOS2D_ROOT}/cocos/platform/linux ${COCOS2D_ROOT}/cocos/editor-support ${COCOS2D_ROOT}/extensions ${COCOS2D_ROOT}/external ${COCOS2D_ROOT}/external/edtaa3func ${COCOS2D_ROOT}/external/jpeg/include/linux ${COCOS2D_ROOT}/external/tiff/include/linux ${COCOS2D_ROOT}/external/webp/include/linux ${COCOS2D_ROOT}/external/websockets/include/linux ${COCOS2D_ROOT}/external/tinyxml2 ${COCOS2D_ROOT}/external/unzip ${COCOS2D_ROOT}/external/chipmunk/include/chipmunk ${COCOS2D_ROOT}/external/freetype2/include/linux ${COCOS2D_ROOT}/external/linux-specific/fmod/include/${ARCH_DIR} ${COCOS2D_ROOT}/external/xxhash ${COCOS2D_ROOT}/external/xxtea ) link_directories( /usr/local/lib ${COCOS2D_ROOT}/external/jpeg/prebuilt/linux/${ARCH_DIR} ${COCOS2D_ROOT}/external/tiff/prebuilt/linux/${ARCH_DIR} ${COCOS2D_ROOT}/external/webp/prebuilt/linux/${ARCH_DIR} ${COCOS2D_ROOT}/external/websockets/prebuilt/linux/${ARCH_DIR} ${COCOS2D_ROOT}/external/freetype2/prebuilt/linux/${ARCH_DIR} ${COCOS2D_ROOT}/external/linux-specific/fmod/prebuilt/${ARCH_DIR} ) # chipmunk library add_subdirectory(${COCOS2D_ROOT}/external/chipmunk/src) # box2d library add_subdirectory(${COCOS2D_ROOT}/external/Box2D) # unzip library add_subdirectory(${COCOS2D_ROOT}/external/unzip) # tinyxml2 library add_subdirectory(${COCOS2D_ROOT}/external/tinyxml2) # audio add_subdirectory(${COCOS2D_ROOT}/cocos/audio) # xxhash library add_subdirectory(${COCOS2D_ROOT}/external/xxhash) # cocos 2d library add_subdirectory(${COCOS2D_ROOT}/cocos) # network library add_subdirectory(${COCOS2D_ROOT}/cocos/network) # ui library add_subdirectory(${COCOS2D_ROOT}/cocos/ui) # sqlite3 library add_subdirectory(${COCOS2D_ROOT}/cocos/storage) # extensions add_subdirectory(${COCOS2D_ROOT}/extensions) # xxtea library add_subdirectory(${COCOS2D_ROOT}/external/xxtea) ## Editor Support # spine add_subdirectory(${COCOS2D_ROOT}/cocos/editor-support/spine) # cocosbuilder add_subdirectory(${COCOS2D_ROOT}/cocos/editor-support/cocosbuilder) # cocostudio add_subdirectory(${COCOS2D_ROOT}/cocos/editor-support/cocostudio) ## Scripting # lua add_subdirectory(${COCOS2D_ROOT}/external/lua/lua) # tolua add_subdirectory(${COCOS2D_ROOT}/external/lua/tolua) # luabinding add_subdirectory(${COCOS2D_ROOT}/cocos/scripting/lua-bindings) # add the executable add_executable(${APP_NAME} ${GAME_SRC} ) if ( CMAKE_SIZEOF_VOID_P EQUAL 8 ) set(FMOD_LIB "fmodex64") else() set(FMOD_LIB "fmodex") endif() target_link_libraries(${APP_NAME} luacocos2d luacocosdenshion luanetwork audio cocos2d network xxtea ) set(APP_BIN_DIR "${CMAKE_BINARY_DIR}/bin") set_target_properties(${APP_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${APP_BIN_DIR}") pre_build(${APP_NAME} COMMAND ${CMAKE_COMMAND} -E remove_directory ${APP_BIN_DIR}/Resources COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/../res ${APP_BIN_DIR}/Resources/res COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/../src ${APP_BIN_DIR}/Resources/src COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/cocos/scripting/lua-bindings/script/AudioEngine.lua ${APP_BIN_DIR}/Resources COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/cocos/scripting/lua-bindings/script/bitExtend.lua ${APP_BIN_DIR}/Resources COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/cocos/scripting/lua-bindings/script/Cocos2d.lua ${APP_BIN_DIR}/Resources COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/cocos/scripting/lua-bindings/script/Cocos2dConstants.lua ${APP_BIN_DIR}/Resources COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/cocos/scripting/lua-bindings/script/DeprecatedCocos2dClass.lua ${APP_BIN_DIR}/Resources COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/cocos/scripting/lua-bindings/script/DeprecatedCocos2dEnum.lua ${APP_BIN_DIR}/Resources COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/cocos/scripting/lua-bindings/script/DeprecatedCocos2dFunc.lua ${APP_BIN_DIR}/Resources COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/cocos/scripting/lua-bindings/script/DeprecatedCocosDenshionClass.lua ${APP_BIN_DIR}/Resources COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/cocos/scripting/lua-bindings/script/DeprecatedCocosDenshionFunc.lua ${APP_BIN_DIR}/Resources COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/cocos/scripting/lua-bindings/script/DeprecatedNetworkClass.lua ${APP_BIN_DIR}/Resources COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/cocos/scripting/lua-bindings/script/DeprecatedNetworkEnum.lua ${APP_BIN_DIR}/Resources COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/cocos/scripting/lua-bindings/script/DeprecatedNetworkFunc.lua ${APP_BIN_DIR}/Resources COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/cocos/scripting/lua-bindings/script/DeprecatedOpenglEnum.lua ${APP_BIN_DIR}/Resources COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/cocos/scripting/lua-bindings/script/DrawPrimitives.lua ${APP_BIN_DIR}/Resources COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/cocos/scripting/lua-bindings/script/extern.lua ${APP_BIN_DIR}/Resources COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/cocos/scripting/lua-bindings/script/json.lua ${APP_BIN_DIR}/Resources COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/cocos/scripting/lua-bindings/script/NetworkConstants.lua ${APP_BIN_DIR}/Resources COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/cocos/scripting/lua-bindings/script/Opengl.lua ${APP_BIN_DIR}/Resources COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/cocos/scripting/lua-bindings/script/OpenglConstants.lua ${APP_BIN_DIR}/Resources )