diff --git a/CMakeLists.txt b/CMakeLists.txt index 347611d..9f028dc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,3 +8,31 @@ include(build/CMakeLists.txt) # Setup source files add_subdirectory(src) + +# Add PackagedBuild target to package a release build +add_custom_target(PackagedBuild) +add_dependencies(PackagedBuild jupiter Bot) + +if(NOT DEFINED ${PACKAGED_BUILD_PATH}) + set(PACKAGED_BUILD_PATH "${CMAKE_CURRENT_SOURCE_DIR}/bin") +endif() + +add_custom_command(TARGET PackagedBuild + PRE_BUILD + COMMAND ${CMAKE_COMMAND} -E rm -rf ${PACKAGED_BUILD_PATH}) +add_custom_command(TARGET PackagedBuild + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E make_directory ${PACKAGED_BUILD_PATH}/Plugins/) +add_custom_command(TARGET PackagedBuild + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy $ $ ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE ${PACKAGED_BUILD_PATH}/) +add_custom_command(TARGET PackagedBuild + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/baseline ${PACKAGED_BUILD_PATH}/) + +foreach(plugin ${JUPITER_PLUGINS}) + add_dependencies(PackagedBuild ${plugin}) + add_custom_command(TARGET PackagedBuild + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy $ ${PACKAGED_BUILD_PATH}/Plugins/) +endforeach() diff --git a/MakeRelease.bat b/MakeRelease.bat deleted file mode 100644 index bf6c454..0000000 --- a/MakeRelease.bat +++ /dev/null @@ -1,84 +0,0 @@ -@ECHO OFF -if NOT "%1" == "-scr" ECHO Copyright (C) 2014-2017 Jessica James. All rights reserved. -ECHO. - -SET Platform=Win32 -SET NoArgs=False -SET BinDir=cmake-build-win-release-x64\bin\\ - -if "%1" == "" SET NoArgs=True - -:ParseParams: -if "%1" == "-platform" ( - SET Platform=%2 - SHIFT /1 - GOTO ParseParamsCondition -) -if "%1" == "/?" GOTO Help -if "%1" == "-help" GOTO Help -if "%1" == "--help" GOTO Help -if "%1" == "-clean" GOTO CleanUp -if "%1" == "-binary" GOTO BinaryCopy -if "%1" == "-source" GOTO SourceCopy - -:ParseParamsCondition: -SHIFT /1 -if NOT "%1" == "" GOTO ParseParams -:EndParseParams: - -CALL %0 -scr -platform %Platform% -clean -CALL %0 -scr -platform %Platform% -binary -CALL %0 -scr -platform %Platform% -source -if %NoArgs% == "True" GOTO Done -GOTO EOF - -:Help: -ECHO This is a convenience script to assist in build release. -ECHO Usage: %0 [-clean/-binary/-source] -ECHO. -ECHO Clean: Deletes any contents from previous builds. -ECHO Binary: Copies and ZIPS the essential binaries to run the applicaiton. -ECHO Source: Copies and ZIPS the source code to run the application. -ECHO. -ECHO If no parameters are given, then all functions will be executed. -ECHO. -ECHO If a parameter other than "-clean", "-binary", or "-source" is given, -ECHO then the program will execute all functions without pausing at the end. -ECHO. -ECHO Program execution order: -ECHO Clean -ECHO Binary -ECHO Source -ECHO. -ECHO Dependencies: -ECHO COPY, ROBOCOPY, DEL, RMDIR, PAUSE, ECHO, GOTO, IF, CALL -GOTO EOF - -:CleanUp: -RMDIR /S /Q "..\Jupiter Bot Binaries" -RMDIR /S /Q "..\Jupiter Bot Source" -DEL /F /Q "..\Jupiter Bot Binaries.zip" -DEL /F /Q "..\Jupiter Bot.zip" -GOTO EOF - -:BinaryCopy: -ROBOCOPY "%BinDir%" "..\Jupiter Bot Binaries\\" *.dll *.exe /S /xf Tester.exe -ROBOCOPY "Configs\\" "..\Jupiter Bot Binaries\Configs\\" * -ROBOCOPY ".\\" "..\Jupiter Bot Binaries\\" *.ini *.txt LICENSE -"C:\Program Files\WinRAR\WinRAR.exe" a -r "..\Jupiter Bot Binaries.zip" "..\Jupiter Bot Binaries" -GOTO EOF - -:SourceCopy: -ROBOCOPY ".\\" "..\Jupiter Bot Source\\" *.* /S /XD Win32 x64 .* -ROBOCOPY "%BinDir%" "..\Jupiter Bot Source\%BinDir%" *.dll *.exe /S -ROBOCOPY "Configs\\" "..\Jupiter Bot Source\Configs\\" * -ROBOCOPY ".\\" "..\Jupiter Bot Source\\" *.ini *.txt LICENSE -"C:\Program Files\WinRAR\WinRAR.exe" a -r "..\Jupiter Bot.zip" "..\Jupiter Bot Source" -GOTO EOF - -:Done: -ECHO Operations complete. -PAUSE -GOTO EOF - -:EOF: diff --git a/Config.ini b/baseline/Config.ini similarity index 100% rename from Config.ini rename to baseline/Config.ini diff --git a/Configs/ChannelRelay.ini b/baseline/Configs/ChannelRelay.ini similarity index 100% rename from Configs/ChannelRelay.ini rename to baseline/Configs/ChannelRelay.ini diff --git a/Configs/HTTPServer.ini b/baseline/Configs/HTTPServer.ini similarity index 100% rename from Configs/HTTPServer.ini rename to baseline/Configs/HTTPServer.ini diff --git a/Configs/IRC.Core.ini b/baseline/Configs/IRC.Core.ini similarity index 100% rename from Configs/IRC.Core.ini rename to baseline/Configs/IRC.Core.ini diff --git a/Configs/RenX.Announcements.ini b/baseline/Configs/RenX.Announcements.ini similarity index 100% rename from Configs/RenX.Announcements.ini rename to baseline/Configs/RenX.Announcements.ini diff --git a/Configs/RenX.Commands.ini b/baseline/Configs/RenX.Commands.ini similarity index 100% rename from Configs/RenX.Commands.ini rename to baseline/Configs/RenX.Commands.ini diff --git a/Configs/RenX.Core.ini b/baseline/Configs/RenX.Core.ini similarity index 100% rename from Configs/RenX.Core.ini rename to baseline/Configs/RenX.Core.ini diff --git a/Configs/RenX.ExcessiveHeadshots.ini b/baseline/Configs/RenX.ExcessiveHeadshots.ini similarity index 100% rename from Configs/RenX.ExcessiveHeadshots.ini rename to baseline/Configs/RenX.ExcessiveHeadshots.ini diff --git a/Configs/RenX.ExtraLogging.ini b/baseline/Configs/RenX.ExtraLogging.ini similarity index 100% rename from Configs/RenX.ExtraLogging.ini rename to baseline/Configs/RenX.ExtraLogging.ini diff --git a/Configs/RenX.Greetings.ini b/baseline/Configs/RenX.Greetings.ini similarity index 100% rename from Configs/RenX.Greetings.ini rename to baseline/Configs/RenX.Greetings.ini diff --git a/Configs/RenX.IRCJoin.ini b/baseline/Configs/RenX.IRCJoin.ini similarity index 100% rename from Configs/RenX.IRCJoin.ini rename to baseline/Configs/RenX.IRCJoin.ini diff --git a/Configs/RenX.Ladder.All-Time.ini b/baseline/Configs/RenX.Ladder.All-Time.ini similarity index 100% rename from Configs/RenX.Ladder.All-Time.ini rename to baseline/Configs/RenX.Ladder.All-Time.ini diff --git a/Configs/RenX.Ladder.Daily.ini b/baseline/Configs/RenX.Ladder.Daily.ini similarity index 100% rename from Configs/RenX.Ladder.Daily.ini rename to baseline/Configs/RenX.Ladder.Daily.ini diff --git a/Configs/RenX.Ladder.Monthly.ini b/baseline/Configs/RenX.Ladder.Monthly.ini similarity index 100% rename from Configs/RenX.Ladder.Monthly.ini rename to baseline/Configs/RenX.Ladder.Monthly.ini diff --git a/Configs/RenX.Ladder.Web.ini b/baseline/Configs/RenX.Ladder.Web.ini similarity index 100% rename from Configs/RenX.Ladder.Web.ini rename to baseline/Configs/RenX.Ladder.Web.ini diff --git a/Configs/RenX.Ladder.Weekly.ini b/baseline/Configs/RenX.Ladder.Weekly.ini similarity index 100% rename from Configs/RenX.Ladder.Weekly.ini rename to baseline/Configs/RenX.Ladder.Weekly.ini diff --git a/Configs/RenX.Ladder.Yearly.ini b/baseline/Configs/RenX.Ladder.Yearly.ini similarity index 100% rename from Configs/RenX.Ladder.Yearly.ini rename to baseline/Configs/RenX.Ladder.Yearly.ini diff --git a/Configs/RenX.Ladder.ini b/baseline/Configs/RenX.Ladder.ini similarity index 100% rename from Configs/RenX.Ladder.ini rename to baseline/Configs/RenX.Ladder.ini diff --git a/Configs/RenX.Listen.ini b/baseline/Configs/RenX.Listen.ini similarity index 100% rename from Configs/RenX.Listen.ini rename to baseline/Configs/RenX.Listen.ini diff --git a/Configs/RenX.Logging.ini b/baseline/Configs/RenX.Logging.ini similarity index 100% rename from Configs/RenX.Logging.ini rename to baseline/Configs/RenX.Logging.ini diff --git a/Configs/RenX.Medals.ini b/baseline/Configs/RenX.Medals.ini similarity index 100% rename from Configs/RenX.Medals.ini rename to baseline/Configs/RenX.Medals.ini diff --git a/Configs/RenX.MinPlayers.ini b/baseline/Configs/RenX.MinPlayers.ini similarity index 100% rename from Configs/RenX.MinPlayers.ini rename to baseline/Configs/RenX.MinPlayers.ini diff --git a/Configs/RenX.ModSystem.ini b/baseline/Configs/RenX.ModSystem.ini similarity index 100% rename from Configs/RenX.ModSystem.ini rename to baseline/Configs/RenX.ModSystem.ini diff --git a/Configs/RenX.Relay.ini b/baseline/Configs/RenX.Relay.ini similarity index 100% rename from Configs/RenX.Relay.ini rename to baseline/Configs/RenX.Relay.ini diff --git a/Configs/RenX.ServerList.ini b/baseline/Configs/RenX.ServerList.ini similarity index 100% rename from Configs/RenX.ServerList.ini rename to baseline/Configs/RenX.ServerList.ini diff --git a/Configs/RenX.SetJoin.ini b/baseline/Configs/RenX.SetJoin.ini similarity index 100% rename from Configs/RenX.SetJoin.ini rename to baseline/Configs/RenX.SetJoin.ini diff --git a/Configs/RenX.Warn.ini b/baseline/Configs/RenX.Warn.ini similarity index 100% rename from Configs/RenX.Warn.ini rename to baseline/Configs/RenX.Warn.ini diff --git a/Configs/SetJoin.ini b/baseline/Configs/SetJoin.ini similarity index 100% rename from Configs/SetJoin.ini rename to baseline/Configs/SetJoin.ini diff --git a/RenXGameCommands.ini b/baseline/RenXGameCommands.ini similarity index 100% rename from RenXGameCommands.ini rename to baseline/RenXGameCommands.ini diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4e28a1b..b920e7f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -9,3 +9,6 @@ add_subdirectory(Bot) # Setup output paths for plugins add_subdirectory(Plugins) + +# Propagate JUPITER_PLUGINS upwards +set(JUPITER_PLUGINS "${JUPITER_PLUGINS}" PARENT_SCOPE) \ No newline at end of file diff --git a/src/Plugins/CMakeLists.txt b/src/Plugins/CMakeLists.txt index 65fc57e..d213c13 100644 --- a/src/Plugins/CMakeLists.txt +++ b/src/Plugins/CMakeLists.txt @@ -4,6 +4,7 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/Plugins) macro(add_plugin target) add_library(${target} SHARED ${ARGN}) target_link_libraries(${target} Bot) + set(JUPITER_PLUGINS "${JUPITER_PLUGINS}" "${target}" PARENT_SCOPE) endmacro(add_plugin) # Add plugins @@ -17,4 +18,7 @@ add_subdirectory(PluginManager) add_subdirectory(SetJoin) # Add RenX plugins -add_subdirectory(RenX) \ No newline at end of file +add_subdirectory(RenX) + +# Propagate JUPITER_PLUGINS upwards +set(JUPITER_PLUGINS "${JUPITER_PLUGINS}" PARENT_SCOPE) diff --git a/src/Plugins/RenX/CMakeLists.txt b/src/Plugins/RenX/CMakeLists.txt index 7de6cac..d7b95b4 100644 --- a/src/Plugins/RenX/CMakeLists.txt +++ b/src/Plugins/RenX/CMakeLists.txt @@ -6,7 +6,7 @@ target_include_directories(RenX.Core PUBLIC RenX.Core) macro(add_renx_plugin target) - add_library(${target} SHARED ${ARGN}) + add_plugin(${target} ${ARGN}) target_link_libraries(${target} RenX.Core) endmacro(add_renx_plugin) @@ -40,3 +40,6 @@ add_subdirectory(RenX.Relay) add_subdirectory(RenX.ServerList) add_subdirectory(RenX.SetJoin) add_subdirectory(RenX.Warn) + +# Propagate JUPITER_PLUGINS upwards +set(JUPITER_PLUGINS "${JUPITER_PLUGINS}" PARENT_SCOPE)