mirror of
				https://github.com/edubart/otclient.git
				synced 2025-11-04 04:36:23 +01:00 
			
		
		
		
	make framework more flexible, split cmake files
This commit is contained in:
		
							
								
								
									
										176
									
								
								src/framework/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										176
									
								
								src/framework/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,176 @@
 | 
			
		||||
# add framework cmake modules
 | 
			
		||||
SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake;${CMAKE_MODULE_PATH}")
 | 
			
		||||
MESSAGE(STATUS ${CMAKE_MODULE_PATH})
 | 
			
		||||
 | 
			
		||||
# framework options
 | 
			
		||||
OPTION(NO_CONSOLE "Disables console window on Windows platform" OFF)
 | 
			
		||||
OPTION(HANDLE_EXCEPTIONS "Generate crash reports" OFF)
 | 
			
		||||
OPTION(USE_OPENGL_ES2 "Use OpenGL ES 2.0 (for mobiles devices)" OFF)
 | 
			
		||||
 | 
			
		||||
# set debug as default build type
 | 
			
		||||
IF(NOT CMAKE_BUILD_TYPE)
 | 
			
		||||
    SET(CMAKE_BUILD_TYPE Debug)
 | 
			
		||||
ENDIF(NOT CMAKE_BUILD_TYPE)
 | 
			
		||||
 | 
			
		||||
# find needed libraries
 | 
			
		||||
SET(Boost_USE_STATIC_LIBS ON)
 | 
			
		||||
SET(Boost_USE_MULTITHREADED OFF)
 | 
			
		||||
FIND_PACKAGE(Boost COMPONENTS system REQUIRED)
 | 
			
		||||
 | 
			
		||||
IF(USE_OPENGL_ES2)
 | 
			
		||||
    FIND_PACKAGE(OpenGLES2 REQUIRED)
 | 
			
		||||
    FIND_PACKAGE(EGL REQUIRED)
 | 
			
		||||
    SET(OPENGL_INCLUDE_DIR ${OPENGLES_INCLUDE_DIR} ${EGL_INCLUDE_DIR})
 | 
			
		||||
    SET(OPENGL_LIBRARIES ${OPENGLES_LIBRARY} ${EGL_LIBRARY})
 | 
			
		||||
    ADD_DEFINITIONS(-DOPENGL_ES2)
 | 
			
		||||
ELSE(USE_OPENGL_ES2)
 | 
			
		||||
    FIND_PACKAGE(OpenGL REQUIRED)
 | 
			
		||||
ENDIF(USE_OPENGL_ES2)
 | 
			
		||||
 | 
			
		||||
FIND_PACKAGE(Lua REQUIRED)
 | 
			
		||||
FIND_PACKAGE(PhysFS REQUIRED)
 | 
			
		||||
FIND_PACKAGE(GMP REQUIRED)
 | 
			
		||||
FIND_PACKAGE(ZLIB REQUIRED)
 | 
			
		||||
 | 
			
		||||
# setup compiler options
 | 
			
		||||
IF(CMAKE_COMPILER_IS_GNUCXX)
 | 
			
		||||
    SET(CXX_WARNS "-Wall -Wextra -Werror -Wno-unused-parameter -Wno-unused-but-set-variable -Wno-unused-variable -Wno-switch -Wno-missing-field-initializers")
 | 
			
		||||
    SET(CMAKE_CXX_FLAGS "-std=gnu++0x -pipe ${CXX_WARNS}")
 | 
			
		||||
    SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3 -ggdb3 -fno-inline")
 | 
			
		||||
    SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
 | 
			
		||||
    SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O1 -g -ggdb -fno-inline")
 | 
			
		||||
    SET(CMAKE_CXX_LINK_FLAGS "-static-libgcc -static-libstdc++ -Wl,--as-needed")
 | 
			
		||||
ENDIF(CMAKE_COMPILER_IS_GNUCXX)
 | 
			
		||||
 | 
			
		||||
IF(CMAKE_BUILD_TYPE STREQUAL "Debug")
 | 
			
		||||
    ADD_DEFINITIONS(-D_DEBUG)
 | 
			
		||||
ENDIF(CMAKE_BUILD_TYPE STREQUAL "Debug")
 | 
			
		||||
 | 
			
		||||
MESSAGE(STATUS "Build type: " ${CMAKE_BUILD_TYPE})
 | 
			
		||||
IF(USE_OPENGL_ES2)
 | 
			
		||||
    MESSAGE(STATUS "Renderer: OpenGL ES 2")
 | 
			
		||||
ELSE(USE_OPENGL_ES2)
 | 
			
		||||
    MESSAGE(STATUS "Renderer: OpenGL")
 | 
			
		||||
ENDIF(USE_OPENGL_ES2)
 | 
			
		||||
 | 
			
		||||
IF(HANDLE_EXCEPTIONS)
 | 
			
		||||
    ADD_DEFINITIONS(-DHANDLE_EXCEPTIONS)
 | 
			
		||||
    MESSAGE(STATUS "Generate crash reports: ON")
 | 
			
		||||
ELSE(HANDLE_EXCEPTIONS)
 | 
			
		||||
    MESSAGE(STATUS "Generate crash reports: OFF")
 | 
			
		||||
ENDIF(HANDLE_EXCEPTIONS)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
IF(WIN32)
 | 
			
		||||
    SET(FRAMEWORK_SOURCES ${FRAMEWORK_SOURCES} ${CMAKE_CURRENT_LIST_DIR}/platform/win32window.cpp)
 | 
			
		||||
    SET(ADDITIONAL_LIBRARIES ws2_32 mswsock)
 | 
			
		||||
 | 
			
		||||
    IF(CMAKE_COMPILER_IS_GNUCXX)
 | 
			
		||||
        ADD_DEFINITIONS(-D_WIN32_WINNT=0x0501)
 | 
			
		||||
    ENDIF(CMAKE_COMPILER_IS_GNUCXX)
 | 
			
		||||
 | 
			
		||||
    IF(NO_CONSOLE)
 | 
			
		||||
        IF(CMAKE_COMPILER_IS_GNUCXX)
 | 
			
		||||
            SET(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -mwindows")
 | 
			
		||||
        ENDIF(CMAKE_COMPILER_IS_GNUCXX)
 | 
			
		||||
        MESSAGE(STATUS "Disable windows console: ON")
 | 
			
		||||
    ELSE(NO_CONSOLE)
 | 
			
		||||
        MESSAGE(STATUS "Disable windows console: OFF")
 | 
			
		||||
    ENDIF(NO_CONSOLE)
 | 
			
		||||
ELSE(WIN32)
 | 
			
		||||
    SET(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -rdynamic")
 | 
			
		||||
    SET(ADDITIONAL_LIBRARIES pthread)
 | 
			
		||||
    SET(FRAMEWORK_SOURCES ${FRAMEWORK_SOURCES} ${CMAKE_CURRENT_LIST_DIR}/platform/x11window.cpp)
 | 
			
		||||
ENDIF(WIN32)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
INCLUDE_DIRECTORIES(
 | 
			
		||||
    ${Boost_INCLUDE_DIRS}
 | 
			
		||||
    ${OPENGL_INCLUDE_DIR}
 | 
			
		||||
    ${LUA_INCLUDE_DIR}
 | 
			
		||||
    ${PHYSFS_INCLUDE_DIR}
 | 
			
		||||
    ${GMP_INCLUDE_DIR}
 | 
			
		||||
    ${ZLIB_INCLUDE_DIR}
 | 
			
		||||
    "${CMAKE_CURRENT_LIST_DIR}/.."
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
SET(FRAMEWORK_LIBRARIES
 | 
			
		||||
    ${Boost_LIBRARIES}
 | 
			
		||||
    ${OPENGL_LIBRARIES}
 | 
			
		||||
    ${LUA_LIBRARIES}
 | 
			
		||||
    ${PHYSFS_LIBRARY}
 | 
			
		||||
    ${GMP_LIBRARY}
 | 
			
		||||
    ${ZLIB_LIBRARY}
 | 
			
		||||
    ${ADDITIONAL_LIBRARIES}
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
SET(FRAMEWORK_SOURCES ${FRAMEWORK_SOURCES}
 | 
			
		||||
    # framework
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/application.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/luafunctions.cpp
 | 
			
		||||
 | 
			
		||||
    # framework core
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/core/logger.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/core/clock.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/core/configmanager.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/core/resourcemanager.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/core/eventdispatcher.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/core/modulemanager.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/core/module.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/core/clock.cpp
 | 
			
		||||
 | 
			
		||||
    # framework net
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/net/connection.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/net/inputmessage.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/net/outputmessage.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/net/protocol.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/net/rsa.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/net/server.cpp
 | 
			
		||||
 | 
			
		||||
    # framework platform
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/platform/platformwindow.cpp
 | 
			
		||||
 | 
			
		||||
    # framework graphics
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/graphics/font.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/graphics/fontmanager.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/graphics/graphics.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/graphics/texture.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/graphics/framebuffer.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/graphics/animatedtexture.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/graphics/framebuffer.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/graphics/texturemanager.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/graphics/borderimage.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/graphics/image.cpp
 | 
			
		||||
 | 
			
		||||
    # framework otml
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/otml/otmldocument.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/otml/otmlemitter.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/otml/otmlnode.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/otml/otmlparser.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/otml/otmlexception.cpp
 | 
			
		||||
 | 
			
		||||
    # framework luascript
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/luascript/luainterface.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/luascript/luaobject.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/luascript/luaexception.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/luascript/luavaluecasts.cpp
 | 
			
		||||
 | 
			
		||||
    # framework ui
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/ui/uimanager.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/ui/uiwidget.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/ui/uilabel.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/ui/uibutton.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/ui/uilineedit.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/ui/uiwindow.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/ui/uianchorlayout.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/ui/uiverticallayout.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/ui/uilayout.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/ui/uiprogressbar.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/ui/uicheckbox.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/ui/uiframecounter.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/ui/uitranslator.cpp
 | 
			
		||||
 | 
			
		||||
    # framework third party
 | 
			
		||||
    ${CMAKE_CURRENT_LIST_DIR}/thirdparty/apngloader.cpp
 | 
			
		||||
)
 | 
			
		||||
		Reference in New Issue
	
	Block a user