Skip to content

Commit

Permalink
Build Dark Mod plugins using CMake
Browse files Browse the repository at this point in the history
Introduce a new option SKIP_DM_PLUGINS which can be used at build time to
disable the Dark Mod plugins, however this is OFF by default so TDM plugins
will normally be built (unlike the Automake build which explicitly required
--enable-darkmod-plugins).
  • Loading branch information
Matthew Mott committed Dec 6, 2020
1 parent 472f8e3 commit 8c31ed0
Show file tree
Hide file tree
Showing 7 changed files with 141 additions and 2 deletions.
22 changes: 20 additions & 2 deletions CMakeLists.txt
Expand Up @@ -9,6 +9,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED True)

# Build shared libraries by default
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
option(SKIP_DM_PLUGINS "Don't build Dark Mod specific plugins" OFF)
set(CMAKE_INSTALL_RPATH "$ORIGIN/../lib/darkradiant")

# Debug or release mode
Expand Down Expand Up @@ -65,20 +66,37 @@ add_subdirectory(libs/scene)
add_subdirectory(libs/wxutil)
add_subdirectory(libs/module)

# Plugins and modules
# Mandatory modules
add_subdirectory(plugins/script)

# Dark Mod plugins
if (NOT SKIP_DM_PLUGINS)
add_subdirectory(plugins/dm.stimresponse)
add_subdirectory(plugins/dm.objectives)
add_subdirectory(plugins/dm.difficulty)
add_subdirectory(plugins/dm.editing)
add_subdirectory(plugins/dm.gui)
add_subdirectory(plugins/dm.gameconnection)
endif()

# Main radiant components
add_subdirectory(radiantcore)
add_subdirectory(radiant)

# Install built targets
# Install main targets
install(TARGETS darkradiant math xmlutil scenegraph wxutil module
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib/darkradiant)
install(TARGETS radiantcore script
LIBRARY DESTINATION lib/darkradiant/modules)

# Install Dark Mod plugins
if (NOT SKIP_DM_PLUGINS)
install(TARGETS dm_stimresponse dm_objectives dm_difficulty dm_editing
dm_gui dm_gameconnection
LIBRARY DESTINATION lib/darkradiant/plugins)
endif()

# Install resources
set(PKG_DATA_DIR "${CMAKE_INSTALL_DATADIR}/darkradiant")

Expand Down
11 changes: 11 additions & 0 deletions plugins/dm.difficulty/CMakeLists.txt
@@ -0,0 +1,11 @@
add_library(dm_difficulty MODULE
ClassNameStore.cpp
DifficultyDialog.cpp
DifficultyEditor.cpp
DifficultyEntity.cpp
DifficultySettings.cpp
DifficultySettingsManager.cpp
plugin.cpp
Setting.cpp)
target_compile_options(dm_difficulty PUBLIC ${SIGC_CFLAGS})
target_link_libraries(dm_difficulty PUBLIC wxutil)
18 changes: 18 additions & 0 deletions plugins/dm.editing/CMakeLists.txt
@@ -0,0 +1,18 @@
add_library(dm_editing MODULE
AIEditingPanel.cpp
AIHeadChooserDialog.cpp
AIHeadPropertyEditor.cpp
AIVocalSetChooserDialog.cpp
AIVocalSetPreview.cpp
AIVocalSetPropertyEditor.cpp
DarkmodTxt.cpp
FixupMap.cpp
FixupMapDialog.cpp
MissionInfoEditDialog.cpp
MissionInfoGuiView.cpp
MissionInfoTextFile.cpp
MissionReadmeDialog.cpp
plugin.cpp
ReadmeTxt.cpp)
target_compile_options(dm_editing PUBLIC ${SIGC_CFLAGS})
target_link_libraries(dm_editing PUBLIC wxutil)
10 changes: 10 additions & 0 deletions plugins/dm.gameconnection/CMakeLists.txt
@@ -0,0 +1,10 @@
add_library(dm_gameconnection MODULE
clsocket/ActiveSocket.cpp
clsocket/PassiveSocket.cpp
clsocket/SimpleSocket.cpp
DiffDoom3MapWriter.cpp
GameConnection.cpp
MapObserver.cpp
MessageTcp.cpp)
target_compile_options(dm_gameconnection PUBLIC ${SIGC_CFLAGS})
target_link_libraries(dm_gameconnection PUBLIC wxutil)
19 changes: 19 additions & 0 deletions plugins/dm.gui/CMakeLists.txt
@@ -0,0 +1,19 @@
add_library(dm_gui MODULE
gui/Gui.cpp
gui/GuiExpression.cpp
gui/GuiManager.cpp
gui/GuiScript.cpp
gui/GuiWindowDef.cpp
gui/RenderableCharacterBatch.cpp
gui/RenderableText.cpp
GuiSelector.cpp
gui/Variable.cpp
plugin.cpp
ReadableEditorDialog.cpp
ReadableGuiView.cpp
XData.cpp
XDataLoader.cpp
XDataSelector.cpp
XdFileChooserDialog.cpp)
target_compile_options(dm_gui PUBLIC ${SIGC_CFLAGS})
target_link_libraries(dm_gui PUBLIC wxutil)
44 changes: 44 additions & 0 deletions plugins/dm.objectives/CMakeLists.txt
@@ -0,0 +1,44 @@
add_library(dm_objectives MODULE
ce/AIFindBodyComponentEditor.cpp
ce/AIFindItemComponentEditor.cpp
ce/AlertComponentEditor.cpp
ce/ComponentEditorFactory.cpp
ce/CustomClockedComponentEditor.cpp
ce/CustomComponentEditor.cpp
ce/DestroyComponentEditor.cpp
ce/DistanceComponentEditor.cpp
ce/InfoLocationComponentEditor.cpp
ce/ItemComponentEditor.cpp
ce/KillComponentEditor.cpp
ce/KnockoutComponentEditor.cpp
ce/LocationComponentEditor.cpp
ce/PickpocketComponentEditor.cpp
ce/ReadableClosedComponentEditor.cpp
ce/ReadableOpenedComponentEditor.cpp
ce/ReadablePageReachedComponentEditor.cpp
ce/SpecifierEditCombo.cpp
ce/specpanel/AIInnocenceSpecifierPanel.cpp
ce/specpanel/AITeamSpecifierPanel.cpp
ce/specpanel/AITypeSpecifierPanel.cpp
ce/specpanel/ClassnameSpecifierPanel.cpp
ce/specpanel/EntityNameSpecifierPanel.cpp
ce/specpanel/GroupSpecifierPanel.cpp
ce/specpanel/SpawnClassSpecifierPanel.cpp
ce/specpanel/SpecifierPanelFactory.cpp
ce/specpanel/TextSpecifierPanel.cpp
Component.cpp
ComponentsDialog.cpp
ComponentType.cpp
DifficultyPanel.cpp
LogicEditor.cpp
MissionLogicDialog.cpp
ObjectiveConditionsDialog.cpp
ObjectiveEntity.cpp
ObjectiveEntityFinder.cpp
ObjectiveKeyExtractor.cpp
objectives.cpp
ObjectivesEditor.cpp
Specifier.cpp
SpecifierType.cpp)
target_compile_options(dm_objectives PUBLIC ${SIGC_CFLAGS})
target_link_libraries(dm_objectives PUBLIC wxutil)
19 changes: 19 additions & 0 deletions plugins/dm.stimresponse/CMakeLists.txt
@@ -0,0 +1,19 @@
add_library(dm_stimresponse MODULE
ClassEditor.cpp
CustomStimEditor.cpp
EffectArgumentItem.cpp
EffectEditor.cpp
plugin.cpp
ResponseEditor.cpp
ResponseEffect.cpp
ResponseEffectTypes.cpp
SREntity.cpp
SRPropertyLoader.cpp
SRPropertyRemover.cpp
SRPropertySaver.cpp
StimEditor.cpp
StimResponse.cpp
StimResponseEditor.cpp
StimTypes.cpp)
target_compile_options(dm_stimresponse PUBLIC ${SIGC_CFLAGS})
target_link_libraries(dm_stimresponse PUBLIC wxutil)

0 comments on commit 8c31ed0

Please sign in to comment.