| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563 |
- cmake_minimum_required(VERSION 2.8)
- # detect architecture
- if (CROWN_ARCH MATCHES "x86")
- set (CROWN_THIRD ${CMAKE_SOURCE_DIR}/engine/third/x86)
- endif (CROWN_ARCH MATCHES "x86")
- if (CROWN_ARCH MATCHES "x86_64")
- set (CROWN_THIRD ${CMAKE_SOURCE_DIR}/engine/third/x86_64)
- endif (CROWN_ARCH MATCHES "x86_64")
- if (CROWN_ARCH MATCHES "win32")
- set (CROWN_THIRD ${CMAKE_SOURCE_DIR}/engine/third/win32)
- endif (CROWN_ARCH MATCHES "win32")
- if (CROWN_ARCH MATCHES "win64")
- set (CROWN_THIRD ${CMAKE_SOURCE_DIR}/engine/third/win64)
- endif (CROWN_ARCH MATCHES "win64")
- if (CROWN_ARCH MATCHES "ARMv7")
- set (CROWN_THIRD ${CMAKE_SOURCE_DIR}/engine/third/ARMv7)
- endif (CROWN_ARCH MATCHES "ARMv7")
- # architecture dependent includes
- set (CROWN_THIRD_INCLUDES
- ${CROWN_THIRD}/luajit/include/luajit-2.0
- ${CROWN_THIRD}/glew-1.9.0/include
- ${CROWN_THIRD}/zlib/include
- )
- # architecture dependent libraries
- set (CROWN_THIRD_LIBS
- ${CROWN_THIRD}/luajit/lib
- ${CROWN_THIRD}/glew-1.9.0/lib
- ${CROWN_THIRD}/zlib/lib
- )
- add_subdirectory(${CROWN_THIRD})
- # platform independent includes
- set (CROWN_INCLUDES
- ${CMAKE_SOURCE_DIR}/engine
- ${CMAKE_SOURCE_DIR}/engine/core
- ${CMAKE_SOURCE_DIR}/engine/core/bv
- ${CMAKE_SOURCE_DIR}/engine/core/containers
- ${CMAKE_SOURCE_DIR}/engine/core/math
- ${CMAKE_SOURCE_DIR}/engine/core/mem
- ${CMAKE_SOURCE_DIR}/engine/core/compressors
- ${CMAKE_SOURCE_DIR}/engine/core/filesystem
- ${CMAKE_SOURCE_DIR}/engine/core/json
- ${CMAKE_SOURCE_DIR}/engine/core/strings
- ${CMAKE_SOURCE_DIR}/engine/core/settings
- ${CMAKE_SOURCE_DIR}/engine/os
- ${CMAKE_SOURCE_DIR}/engine/input
- ${CMAKE_SOURCE_DIR}/engine/renderers
- ${CMAKE_SOURCE_DIR}/engine/resource
- ${CMAKE_SOURCE_DIR}/engine/network
- ${CMAKE_SOURCE_DIR}/engine/lua
- ${CMAKE_SOURCE_DIR}/engine/compilers
- ${CMAKE_SOURCE_DIR}/engine/compilers/tga
- )
- set (SRC
- Camera.cpp
- Device.cpp
- ConsoleServer.cpp
- FPSSystem.cpp
- )
- set (HEADERS
- Camera.h
- Config.h
- Crown.h
- Device.h
- ConsoleServer.h
- FPSSystem.h
- )
- set (CORE_SRC
- core/Log.cpp
- core/Args.cpp
- )
- set (CORE_HEADERS
- core/Assert.h
- core/Types.h
- core/Args.h
- core/Log.h
- )
- set (BV_SRC
- core/bv/Circle.cpp
- core/bv/Frustum.cpp
- core/bv/Rect.cpp
- )
- set (BV_HEADERS
- core/bv/Box.h
- core/bv/Circle.h
- core/bv/Frustum.h
- core/bv/Rect.h
- core/bv/Sphere.h
- )
- set (CONTAINERS_SRC
- core/containers/Generic.cpp
- )
- set (CONTAINERS_HEADERS
- core/containers/Queue.h
- core/containers/PriorityQueue.h
- core/containers/Map.h
- core/containers/Generic.h
- core/containers/List.h
- core/containers/RBTree.h
- core/containers/IdTable.h
- )
- set (MATH_SRC
- core/math/Color4.cpp
- core/math/Mat3.cpp
- core/math/Mat4.cpp
- core/math/Plane.cpp
- core/math/Point2.cpp
- core/math/Quat.cpp
- core/math/Vec2.cpp
- core/math/Vec3.cpp
- core/math/Vec4.cpp
- )
- set (MATH_HEADERS
- core/math/Color4.h
- core/math/Interpolation.h
- core/math/Intersection.h
- core/math/Mat3.h
- core/math/Mat4.h
- core/math/MathUtils.h
- core/math/Plane.h
- core/math/Point2.h
- core/math/Quat.h
- core/math/Random.h
- core/math/Ray.h
- core/math/Triangle.h
- core/math/Vec2.h
- core/math/Vec3.h
- core/math/Vec4.h
- )
- set (FILESYSTEM_SRC
- core/filesystem/DiskFile.cpp
- core/filesystem/File.cpp
-
- core/filesystem/BinaryReader.cpp
- core/filesystem/BinaryWriter.cpp
- core/filesystem/TextReader.cpp
- core/filesystem/TextWriter.cpp
- core/filesystem/DiskMountPoint.cpp
- core/filesystem/Filesystem.cpp
- )
- set (FILESYSTEM_HEADERS
- core/filesystem/DiskFile.h
- core/filesystem/NullFile.h
- core/filesystem/File.h
- core/filesystem/BinaryReader.h
- core/filesystem/BinaryWriter.h
- core/filesystem/TextReader.h
- core/filesystem/TextWriter.h
- core/filesystem/DiskMountPoint.h
- core/filesystem/Filesystem.h
- )
- set (JSON_SRC
- core/json/JSONParser.cpp
- )
- set (JSON_HEADERS
- core/json/JSONParser.h
- )
- set (STRINGS_SRC
- )
- set (STRINGS_HEADERS
- core/strings/Path.h
- core/strings/StringUtils.h
- core/strings/StringStream.h
- core/strings/Hash.h
- )
- set (MEM_SRC
- core/mem/Memory.cpp
- core/mem/Allocator.cpp
- core/mem/HeapAllocator.cpp
- core/mem/LinearAllocator.cpp
- core/mem/StackAllocator.cpp
- core/mem/ProxyAllocator.cpp
- )
- set (MEM_HEADERS
- core/mem/Memory.h
- core/mem/Allocator.h
- core/mem/HeapAllocator.h
- core/mem/TempAllocator.h
- core/mem/LinearAllocator.h
- core/mem/StackAllocator.h
- core/mem/ProxyAllocator.h
- )
- set (COMPRESSORS_SRC
- core/compressors/ZipCompressor.cpp
- )
- set (COMPRESSORS_HEADERS
- core/compressors/Compressor.h
- core/compressors/ZipCompressor.h
- )
- set (SETTINGS_SRC
- core/settings/IntSetting.cpp
- core/settings/FloatSetting.cpp
- core/settings/StringSetting.cpp
- )
- set (SETTINGS_HEADERS
- core/settings/IntSetting.h
- core/settings/FloatSetting.h
- core/settings/StringSetting.h
- )
- set (INPUT_SRC
- input/EventDispatcher.cpp
- input/InputManager.cpp
- input/Keyboard.cpp
- input/Mouse.cpp
- input/Touch.cpp
- input/Accelerometer.cpp
- )
- set (INPUT_HEADERS
- input/EventDispatcher.h
- input/InputManager.h
- input/Keyboard.h
- input/KeyCode.h
- input/Mouse.h
- input/Touch.h
- )
- set (NETWORK_SRC
- network/BitMessage.cpp
- )
- set (NETWORK_HEADERS
- network/BitMessage.h
- )
- set (RENDERERS_SRC
- renderers/DebugRenderer.cpp
- renderers/PixelFormat.cpp
- renderers/VertexFormat.cpp
- )
- set (RENDERERS_HEADERS
- renderers/Renderer.h
- renderers/IndexBuffer.h
- renderers/VertexBuffer.h
- renderers/Material.h
- renderers/Texture.h
- renderers/DebugRenderer.h
- renderers/PixelFormat.h
- renderers/VertexFormat.h
- )
- set (RESOURCE_SRC
- resource/MaterialResource.cpp
- resource/ResourceLoader.cpp
- resource/ResourceManager.cpp
- resource/ResourceRegistry.cpp
- resource/TextureResource.cpp
- resource/MeshResource.cpp
- resource/FontResource.cpp
- resource/SoundResource.cpp
- resource/ArchiveBundle.cpp
- resource/FileBundle.cpp
- )
- set (RESOURCE_HEADERS
- resource/MaterialResource.h
- resource/Resource.h
- resource/ResourceFormat.h
- resource/ResourceLoader.h
- resource/ResourceManager.h
- resource/ResourceRegistry.h
- resource/Bundle.h
- resource/TextureResource.h
- resource/MeshResource.h
- resource/FontResource.h
- resource/SoundResource.h
- resource/ArchiveBundle.h
- resource/FileBundle.h
- )
- set (OS_SRC
- os/OS.cpp
- )
- set (OS_HEADERS
- os/OS.h
- os/NetAddress.h
- )
- set (LUA_SRC
- lua/LuaStack.cpp
- lua/LuaEnvironment.cpp
- lua/LuaIntSetting.cpp
- lua/LuaFloatSetting.cpp
- lua/LuaStringSetting.cpp
- lua/LuaVec2.cpp
- lua/LuaVec3.cpp
- lua/LuaMat4.cpp
- lua/LuaQuat.cpp
- lua/LuaMath.cpp
- lua/LuaMouse.cpp
- lua/LuaKeyboard.cpp
- lua/LuaAccelerometer.cpp
- lua/LuaDevice.cpp
- lua/LuaWindow.cpp
- )
- set (LUA_HEADERS
- lua/LuaStack.h
- lua/LuaEnvironment.h
- )
- set (COMPILER_SRC
- compilers/Compiler.cpp
- compilers/tga/TGACompiler.cpp
- )
- set (COMPILER_HEADER
- compilers/Compiler.h
- compilers/tga/TGACompiler.h
- )
- set (CROWN_LIBRARIES)
- # Platform specific stuff
- if (LINUX)
- list (APPEND CROWN_INCLUDES
- ${CMAKE_SOURCE_DIR}/engine/os/linux
- ${CMAKE_SOURCE_DIR}/engine/renderers/gl/glx
- )
- list (APPEND OS_HEADERS
- os/linux/OsWindow.h
- os/linux/TCPSocket.h
- os/linux/UDPSocket.h
- os/linux/OsFile.h
- os/linux/Thread.h
- os/linux/Mutex.h
- os/linux/Cond.h
- )
- list (APPEND OS_SRC
- os/linux/LinuxOS.cpp
- os/linux/OsWindow.cpp
- os/posix/TCPSocket.cpp
- os/posix/UDPSocket.cpp
- os/posix/OsFile.cpp
- os/posix/Thread.cpp
- os/posix/Mutex.cpp
- os/posix/Cond.cpp
- )
- list (APPEND RENDERERS_SRC
- renderers/gl/GLRenderer.cpp
- renderers/gl/GLUtils.cpp
- renderers/gl/glx/GLContext.cpp
- )
- list (APPEND RENDERERS_HEADERS
- renderers/gl/GLRenderer.h
- renderers/gl/GLUtils.h
- renderers/gl/glx/GLContext.h
- )
- list (APPEND CROWN_LIBRARIES
- rt
- z
- X11
- Xrandr
- pthread
- dl
- GLEW
- GL
- luajit-5.1
- )
- set (COMPILER_FLAGS
- -pipe
- -std=c++03
- -ansi
- -pedantic-errors
- -Wall
- -Wextra
- -Werror
- -Wno-long-long
- -Wno-variadic-macros
- -g
- -pg
- -fPIC
- #-fvisibility=hidden
- )
- set (CROWN_EXECUTABLE_NAME crown-linux)
- set (CROWN_MAIN_SRC os/linux/main.cpp)
- endif (LINUX)
- if (WINDOWS)
- list (APPEND CROWN_INCLUDES
- ${CMAKE_SOURCE_DIR}/engine/os/win
- ${CMAKE_SOURCE_DIR}/engine/renderers/gl/wgl
- )
- list (APPEND OS_HEADERS
- os/win/OsWindow.h
- os/win/OsFile.h
- os/win/Thread.h
- os/win/Mutex.h
- os/win/Cond.h
- )
- list (APPEND OS_SRC
- os/win/WinOS.cpp
- os/win/OsWindow.cpp
- os/win/OsFile.cpp
- os/win/Thread.cpp
- os/win/Mutex.cpp
- os/win/Cond.cpp
- )
- list (APPEND RENDERERS_SRC
- renderers/gl/GLRenderer.cpp
- renderers/gl/GLUtils.cpp
- renderers/gl/wgl/GLContext.cpp
- )
- list (APPEND RENDERERS_HEADERS
- renderers/gl/GLRenderer.h
- renderers/gl/GLUtils.h
- renderers/gl/wgl/GLContext.h
- )
- list (APPEND CROWN_LIBRARIES
- zlib
- OpenGL32
- glew32
- lua51
- )
- set (COMPILER_FLAGS)
-
- set (CROWN_EXECUTABLE_NAME crown-win)
- set (CROWN_MAIN_SRC os/win/main.cpp)
- endif(WINDOWS)
- set (CROWN_SOURCES
- ${SRC}
- ${CORE_SRC}
- ${BV_SRC}
- ${CONTAINERS_SRC}
- ${MATH_SRC}
- ${FILESYSTEM_SRC}
- ${JSON_SRC}
- ${MEM_SRC}
- ${COMPRESSORS_SRC}
- ${SETTINGS_SRC}
- ${INPUT_SRC}
- ${RENDERERS_SRC}
- ${RESOURCE_SRC}
- # ${NETWORK_SRC}
- ${OS_SRC}
- ${LUA_SRC}
- ${COMPILER_SRC}
- )
- set (CROWN_HEADERS
- ${HEADERS}
- ${CORE_HEADERS}
- ${BV_HEADERS}
- ${CONTAINERS_HEADERS}
- ${MATH_HEADERS}
- ${FILESYSTEM_HEADERS}
- ${JSON_HEADERS}
- ${MEM_HEADERS}
- ${COMPRESSORS_HEADERS}
- ${SETTINGS_HEADERS}
- ${INPUT_HEADERS}
- ${RENDERERS_HEADERS}
- ${RESOURCE_HEADERS}
- ${RPC_HEADERS}
- # ${NETWORK_HEADERS}
- ${OS_HEADERS}
- ${LUA_HEADERS}
- ${COMPILER_HEADERS}
- )
- configure_file (${CMAKE_CURRENT_SOURCE_DIR}/Config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/Config.h)
- include_directories(${CROWN_INCLUDES} ${CROWN_THIRD_INCLUDES})
- link_directories(${CROWN_THIRD_LIBS})
- link_libraries(${CROWN_LIBRARIES})
- add_definitions(${COMPILER_FLAGS})
- add_library(crown SHARED ${CROWN_SOURCES} ${CROWN_HEADERS})
- set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:$ORIGIN")
- add_executable(${CROWN_EXECUTABLE_NAME} ${CROWN_MAIN_SRC})
- target_link_libraries(${CROWN_EXECUTABLE_NAME} crown)
- if (CROWN_BUILD_TESTS)
- add_subdirectory(tests)
- endif (CROWN_BUILD_TESTS)
- install (TARGETS crown DESTINATION bin)
- install (TARGETS ${CROWN_EXECUTABLE_NAME} DESTINATION bin)
- #install (FILES ${HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME})
- #install (FILES ${CORE_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core)
- #install (FILES ${BV_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core/bv)
- #install (FILES ${CONTAINERS_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core/containers)
- #install (FILES ${MATH_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core/math)
- #install (FILES ${FILESYSTEM_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core/filesystem)
- #install (FILES ${MEM_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core/mem)
- #install (FILES ${COMPRESSORS_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core/compressors)
- #install (FILES ${THREADS_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core/threads)
- #install (FILES ${SETTINGS_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core/settings)
- #
- #install (FILES ${INPUT_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/input)
- #install (FILES ${RENDERERS_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/renderers)
- #install (FILES ${NETWORK_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/network)
- #install (FILES ${OS_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/os)
- #install (FILES ${LUA_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/lua)
|