mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-07 03:54:40 +00:00
20dabaead9
Added FindDirectX scripts from Ogre so that FindOgre.cmake doesn't fail silently to find the libraries correctly. Modified top-level CMakelists.txt: - Correctly set include dirs, preprocessor definitions, and add libraries for static Ogre plugins. - Correctly set preprocessor definitions for static MyGUI. Modified launcher, openmw, and opencs to link the static Ogre plugins. Fixed FindSDL2.cmake to set a variable that contains only the SDL2 library, so that the launcher doesn't incorrectly link against SDL2main. Fixed FindMyGUI.cmake to correctly look for static variants. Fixed FindOgre.cmake to set variables for DirectX plugins correctly.
160 lines
5.4 KiB
CMake
160 lines
5.4 KiB
CMake
# local files
|
|
set(GAME
|
|
main.cpp
|
|
engine.cpp
|
|
)
|
|
if(NOT WIN32)
|
|
set(GAME ${GAME} crashcatcher.cpp)
|
|
endif()
|
|
set(GAME_HEADER
|
|
engine.hpp
|
|
)
|
|
source_group(game FILES ${GAME} ${GAME_HEADER})
|
|
|
|
add_openmw_dir (mwrender
|
|
renderingmanager debugging sky camera animation npcanimation creatureanimation activatoranimation
|
|
actors objects renderinginterface localmap occlusionquery water shadows
|
|
characterpreview globalmap videoplayer ripplesimulation refraction
|
|
terrainstorage renderconst effectmanager weaponanimation
|
|
)
|
|
|
|
add_openmw_dir (mwinput
|
|
inputmanagerimp
|
|
)
|
|
|
|
add_openmw_dir (mwgui
|
|
textinput widgets race class birth review windowmanagerimp console dialogue
|
|
windowbase statswindow messagebox journalwindow charactercreation
|
|
mapwindow windowpinnablebase tooltips scrollwindow bookwindow list
|
|
formatting inventorywindow container hud countdialog tradewindow settingswindow
|
|
confirmationdialog alchemywindow referenceinterface spellwindow mainmenu quickkeysmenu
|
|
itemselection spellbuyingwindow loadingscreen levelupdialog waitdialog spellcreationdialog
|
|
enchantingdialog trainingwindow travelwindow imagebutton exposedwindow cursor spellicons
|
|
merchantrepair repair soulgemdialog companionwindow bookpage journalviewmodel journalbooks
|
|
keywordsearch itemmodel containeritemmodel inventoryitemmodel sortfilteritemmodel itemview
|
|
tradeitemmodel companionitemmodel pickpocketitemmodel fontloader controllers savegamedialog
|
|
recharge mode videowidget backgroundimage
|
|
)
|
|
|
|
add_openmw_dir (mwdialogue
|
|
dialoguemanagerimp journalimp journalentry quest topic filter selectwrapper
|
|
)
|
|
|
|
add_openmw_dir (mwscript
|
|
locals scriptmanagerimp compilercontext interpretercontext cellextensions miscextensions
|
|
guiextensions soundextensions skyextensions statsextensions containerextensions
|
|
aiextensions controlextensions extensions globalscripts ref dialogueextensions
|
|
animationextensions transformationextensions consoleextensions userextensions
|
|
)
|
|
|
|
add_openmw_dir (mwsound
|
|
soundmanagerimp openal_output ffmpeg_decoder sound
|
|
)
|
|
|
|
add_openmw_dir (mwworld
|
|
refdata worldimp physicssystem scene globals class action nullaction actionteleport
|
|
containerstore actiontalk actiontake manualref player cellfunctors failedaction
|
|
cells localscripts customdata weather inventorystore ptr actionopen actionread
|
|
actionequip timestamp actionalchemy cellstore actionapply actioneat
|
|
esmstore store recordcmp fallback actionrepair actionsoulgem livecellref actiondoor
|
|
contentloader esmloader omwloader actiontrap cellreflist projectilemanager cellref
|
|
)
|
|
|
|
add_openmw_dir (mwclass
|
|
classes activator creature npc weapon armor potion apparatus book clothing container door
|
|
ingredient creaturelevlist itemlevlist light lockpick misc probe repair static
|
|
)
|
|
|
|
add_openmw_dir (mwmechanics
|
|
mechanicsmanagerimp stat character creaturestats magiceffects movement actors objects
|
|
drawstate spells activespells npcstats aipackage aisequence aipursue alchemy aiwander aitravel aifollow aiavoiddoor
|
|
aiescort aiactivate aicombat repair enchanting pathfinding pathgrid security spellsuccess spellcasting
|
|
disease pickpocket levelledlist combat steering obstacle
|
|
)
|
|
|
|
add_openmw_dir (mwstate
|
|
statemanagerimp charactermanager character
|
|
)
|
|
|
|
add_openmw_dir (mwbase
|
|
environment world scriptmanager dialoguemanager journal soundmanager mechanicsmanager
|
|
inputmanager windowmanager statemanager
|
|
)
|
|
|
|
# Main executable
|
|
set(BOOST_COMPONENTS system filesystem program_options thread wave)
|
|
if(WIN32)
|
|
set(BOOST_COMPONENTS ${BOOST_COMPONENTS} locale)
|
|
endif(WIN32)
|
|
|
|
find_package(Boost REQUIRED COMPONENTS ${BOOST_COMPONENTS})
|
|
|
|
add_executable(openmw
|
|
${OPENMW_LIBS} ${OPENMW_LIBS_HEADER}
|
|
${OPENMW_FILES}
|
|
${GAME} ${GAME_HEADER}
|
|
${APPLE_BUNDLE_RESOURCES}
|
|
)
|
|
|
|
# Sound stuff - here so CMake doesn't stupidly recompile EVERYTHING
|
|
# when we change the backend.
|
|
include_directories(${SOUND_INPUT_INCLUDES} ${BULLET_INCLUDE_DIRS})
|
|
add_definitions(${SOUND_DEFINE})
|
|
|
|
target_link_libraries(openmw
|
|
${OGRE_LIBRARIES}
|
|
${OGRE_STATIC_PLUGINS}
|
|
${SHINY_LIBRARIES}
|
|
${Boost_LIBRARIES}
|
|
${OPENAL_LIBRARY}
|
|
${SOUND_INPUT_LIBRARY}
|
|
${BULLET_LIBRARIES}
|
|
${MYGUI_LIBRARIES}
|
|
${SDL2_LIBRARY}
|
|
${MYGUI_PLATFORM_LIBRARIES}
|
|
"oics"
|
|
"sdl4ogre"
|
|
components
|
|
)
|
|
|
|
if (USE_SYSTEM_TINYXML)
|
|
target_link_libraries(openmw ${TINYXML_LIBRARIES})
|
|
endif()
|
|
|
|
if (NOT UNIX)
|
|
target_link_libraries(openmw ${SDL2MAIN_LIBRARY})
|
|
endif()
|
|
|
|
# Fix for not visible pthreads functions for linker with glibc 2.15
|
|
if (UNIX AND NOT APPLE)
|
|
target_link_libraries(openmw ${CMAKE_THREAD_LIBS_INIT})
|
|
endif()
|
|
|
|
if(APPLE)
|
|
find_library(COCOA_FRAMEWORK Cocoa)
|
|
find_library(IOKIT_FRAMEWORK IOKit)
|
|
target_link_libraries(openmw ${COCOA_FRAMEWORK} ${IOKIT_FRAMEWORK})
|
|
|
|
if (FFMPEG_FOUND)
|
|
find_library(COREVIDEO_FRAMEWORK CoreVideo)
|
|
find_library(VDA_FRAMEWORK VideoDecodeAcceleration)
|
|
target_link_libraries(openmw ${COREVIDEO_FRAMEWORK} ${VDA_FRAMEWORK})
|
|
endif()
|
|
endif(APPLE)
|
|
|
|
if(DPKG_PROGRAM)
|
|
INSTALL(TARGETS openmw RUNTIME DESTINATION games COMPONENT openmw)
|
|
endif(DPKG_PROGRAM)
|
|
|
|
if (BUILD_WITH_CODE_COVERAGE)
|
|
add_definitions (--coverage)
|
|
target_link_libraries(openmw gcov)
|
|
endif()
|
|
|
|
if (MSVC)
|
|
# Debug version needs increased number of sections beyond 2^16
|
|
if (CMAKE_CL_64)
|
|
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /bigobj")
|
|
endif (CMAKE_CL_64)
|
|
endif (MSVC)
|