Move oengine to a static library, fixes duplicate compilation of oengine/bullet files by openmw and opencs

celladd
scrawl 10 years ago
parent c7cd576002
commit 0fda1cdd53

@ -97,43 +97,6 @@ endif()
# We probably support older versions than this.
cmake_minimum_required(VERSION 2.6)
# source directory: libs
set(LIBS_DIR ${CMAKE_SOURCE_DIR}/libs)
set(OENGINE_OGRE
${LIBS_DIR}/openengine/ogre/renderer.cpp
${LIBS_DIR}/openengine/ogre/lights.cpp
${LIBS_DIR}/openengine/ogre/selectionbuffer.cpp
${LIBS_DIR}/openengine/ogre/imagerotate.cpp
)
set(OENGINE_GUI
${LIBS_DIR}/openengine/gui/loglistener.cpp
${LIBS_DIR}/openengine/gui/manager.cpp
${LIBS_DIR}/openengine/gui/layout.cpp
)
set(OENGINE_BULLET
${LIBS_DIR}/openengine/bullet/BtOgre.cpp
${LIBS_DIR}/openengine/bullet/BtOgreExtras.h
${LIBS_DIR}/openengine/bullet/BtOgreGP.h
${LIBS_DIR}/openengine/bullet/BtOgrePG.h
${LIBS_DIR}/openengine/bullet/physic.cpp
${LIBS_DIR}/openengine/bullet/physic.hpp
${LIBS_DIR}/openengine/bullet/BulletShapeLoader.cpp
${LIBS_DIR}/openengine/bullet/BulletShapeLoader.h
${LIBS_DIR}/openengine/bullet/trace.cpp
${LIBS_DIR}/openengine/bullet/trace.h
)
set(OENGINE_ALL ${OENGINE_OGRE} ${OENGINE_GUI} ${OENGINE_BULLET})
source_group(libs\\openengine FILES ${OENGINE_ALL})
set(OPENMW_LIBS ${OENGINE_ALL})
set(OPENMW_LIBS_HEADER)
# Sound setup
set(FFmpeg_FIND_COMPONENTS AVCODEC AVFORMAT AVUTIL SWSCALE SWRESAMPLE AVRESAMPLE)
unset(FFMPEG_LIBRARIES CACHE)
@ -275,6 +238,7 @@ include_directories("."
${MYGUI_INCLUDE_DIRS}
${MYGUI_PLATFORM_INCLUDE_DIRS}
${OPENAL_INCLUDE_DIR}
${BULLET_INCLUDE_DIRS}
${LIBS_DIR}
)
@ -572,6 +536,10 @@ if(WIN32)
include(CPack)
endif(WIN32)
# Libs
include_directories(libs)
add_subdirectory(libs/openengine)
# Extern
add_subdirectory (extern/shiny)
add_subdirectory (extern/ogre-ffmpeg-videoplayer)

@ -164,7 +164,8 @@ qt4_wrap_ui(OPENCS_UI_HDR ${OPENCS_UI})
qt4_wrap_cpp(OPENCS_MOC_SRC ${OPENCS_HDR_QT})
qt4_add_resources(OPENCS_RES_SRC ${OPENCS_RES})
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${BULLET_INCLUDE_DIRS})
# for compiled .ui files
include_directories(${CMAKE_CURRENT_BINARY_DIR})
if(APPLE)
set (OPENCS_MAC_ICON ${CMAKE_SOURCE_DIR}/files/mac/openmw-cs.icns)
@ -174,7 +175,6 @@ endif(APPLE)
add_executable(openmw-cs
MACOSX_BUNDLE
${OENGINE_BULLET}
${OPENCS_SRC}
${OPENCS_UI_HDR}
${OPENCS_MOC_SRC}
@ -198,6 +198,7 @@ if(APPLE)
endif(APPLE)
target_link_libraries(openmw-cs
${OENGINE_LIBRARY}
${OGRE_LIBRARIES}
${OGRE_Overlay_LIBRARIES}
${OGRE_STATIC_PLUGINS}

@ -104,7 +104,6 @@ find_package(Boost REQUIRED COMPONENTS ${BOOST_COMPONENTS})
if (NOT ANDROID)
add_executable(openmw
${OPENMW_LIBS} ${OPENMW_LIBS_HEADER}
${OPENMW_FILES}
${GAME} ${GAME_HEADER}
${APPLE_BUNDLE_RESOURCES}
@ -112,7 +111,6 @@ if (NOT ANDROID)
else ()
add_library(openmw
SHARED
${OPENMW_LIBS} ${OPENMW_LIBS_HEADER}
${OPENMW_FILES}
${GAME} ${GAME_HEADER}
)
@ -120,9 +118,10 @@ endif ()
# Sound stuff - here so CMake doesn't stupidly recompile EVERYTHING
# when we change the backend.
include_directories(${SOUND_INPUT_INCLUDES} ${BULLET_INCLUDE_DIRS})
include_directories(${SOUND_INPUT_INCLUDES})
target_link_libraries(openmw
${OENGINE_LIBRARY}
${OGRE_LIBRARIES}
${OGRE_STATIC_PLUGINS}
${SHINY_LIBRARIES}

@ -6,6 +6,7 @@ set(SDL4OGRE_SOURCE_FILES
sdlinputwrapper.cpp
sdlcursormanager.cpp
sdlwindowhelper.cpp
imagerotate.cpp
)
if (APPLE)

@ -17,7 +17,9 @@
#include <OgreViewport.h>
using namespace Ogre;
using namespace OEngine::Render;
namespace SFO
{
void ImageRotate::rotate(const std::string& sourceImage, const std::string& destImage, const float angle)
{
@ -93,3 +95,5 @@ void ImageRotate::rotate(const std::string& sourceImage, const std::string& dest
root->destroySceneManager(sceneMgr);
delete rect;
}
}

@ -3,9 +3,8 @@
#include <string>
namespace OEngine
{
namespace Render
namespace SFO
{
/// Rotate an image by certain degrees and save as file, uses the GPU
@ -22,6 +21,5 @@ namespace Render
};
}
}
#endif

@ -7,7 +7,7 @@
#include <SDL_mouse.h>
#include <SDL_endian.h>
#include <openengine/ogre/imagerotate.hpp>
#include "imagerotate.hpp"
namespace SFO
{
@ -91,7 +91,7 @@ namespace SFO
// we use a render target to uncompress the DDS texture
// just blitting doesn't seem to work on D3D9
OEngine::Render::ImageRotate::rotate(tex->getName(), tempName, -rotDegrees);
ImageRotate::rotate(tex->getName(), tempName, -rotDegrees);
Ogre::TexturePtr resultTexture = Ogre::TextureManager::getSingleton().getByName(tempName);

@ -0,0 +1,33 @@
set(OENGINE_OGRE
ogre/renderer.cpp
ogre/lights.cpp
ogre/selectionbuffer.cpp
)
set(OENGINE_GUI
gui/loglistener.cpp
gui/manager.cpp
gui/layout.cpp
)
set(OENGINE_BULLET
bullet/BtOgre.cpp
bullet/BtOgreExtras.h
bullet/BtOgreGP.h
bullet/BtOgrePG.h
bullet/physic.cpp
bullet/physic.hpp
bullet/BulletShapeLoader.cpp
bullet/BulletShapeLoader.h
bullet/trace.cpp
bullet/trace.h
)
set(OENGINE_ALL ${OENGINE_OGRE} ${OENGINE_GUI} ${OENGINE_BULLET})
set(OENGINE_LIBRARY "oengine")
set(OENGINE_LIBRARY ${OENGINE_LIBRARY} PARENT_SCOPE)
source_group(oengine FILES ${OENGINE_ALL})
add_library(${OENGINE_LIBRARY} STATIC ${OENGINE_ALL})
Loading…
Cancel
Save