project(BWAPI-Client CXX)
# Define this variable BWAPI_CUSTOM_COMPILE_FLAGS to set your compile flags
IF(BWAPI_CUSTOM_COMPILE_FLAGS)
ADD_DEFINITIONS(${BWAPI_CUSTOM_COMPILE_FLAGS})
ENDIF(BWAPI_CUSTOM_COMPILE_FLAGS)
SET(BWAPI_DLL_NAME BWAPI)
IF(CMAKE_BUILD_TYPE STREQUAL "Debug")
SET(BWAPI_LIB_NAME "BWAPI-Staticd")
SET(CMAKE_CONFIGURATION_TYPES "Debug" CACHE STRING "" FORCE)
ELSE()
SET(BWAPI_LIB_NAME "BWAPI-Static")
SET(CMAKE_CONFIGURATION_TYPES "Release" CACHE STRING "" FORCE)
ENDIF()
ADD_DEFINITIONS(/DNOMINMAX=1)
GET_FILENAME_COMPONENT(BWAPI_ROOT ../../bwapi ABSOLUTE)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${BWAPI_ROOT}/lib)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${BWAPI_ROOT}/lib)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${BWAPI_ROOT}/lib)
SET(BWAPI_INCL_DIR ${BWAPI_ROOT}/include)
INCLUDE_DIRECTORIES(
${BWAPI_INCL_DIR}
${BWAPI_ROOT}/BWAPICore
${BWAPI_ROOT}/Storm
)
SET(BWAPI_INCLUDES
${BWAPI_INCL_DIR}/BWAPI.h
${BWAPI_INCL_DIR}/BWAPI/Client.h
${BWAPI_INCL_DIR}/BWAPI/Client/BulletData.h
${BWAPI_INCL_DIR}/BWAPI/Client/BulletImpl.h
${BWAPI_INCL_DIR}/BWAPI/Client/Client.h
${BWAPI_INCL_DIR}/BWAPI/Client/Command.h
${BWAPI_INCL_DIR}/BWAPI/Client/CommandType.h
${BWAPI_INCL_DIR}/BWAPI/Client/Event.h
${BWAPI_INCL_DIR}/BWAPI/Client/ForceData.h
${BWAPI_INCL_DIR}/BWAPI/Client/ForceImpl.h
${BWAPI_INCL_DIR}/BWAPI/Client/GameData.h
${BWAPI_INCL_DIR}/BWAPI/Client/GameImpl.h
${BWAPI_INCL_DIR}/BWAPI/Client/GameTable.h
${BWAPI_INCL_DIR}/BWAPI/Client/PlayerData.h
${BWAPI_INCL_DIR}/BWAPI/Client/PlayerImpl.h
${BWAPI_INCL_DIR}/BWAPI/Client/RegionData.h
${BWAPI_INCL_DIR}/BWAPI/Client/RegionImpl.h
${BWAPI_INCL_DIR}/BWAPI/Client/Shape.h
${BWAPI_INCL_DIR}/BWAPI/Client/ShapeType.h
${BWAPI_INCL_DIR}/BWAPI/Client/UnitCommand.h
${BWAPI_INCL_DIR}/BWAPI/Client/UnitData.h
${BWAPI_INCL_DIR}/BWAPI/Client/UnitImpl.h
${BWAPI_INCL_DIR}/BWAPI/AIModule.h
${BWAPI_INCL_DIR}/BWAPI/ArithmaticFilter.h
${BWAPI_INCL_DIR}/BWAPI/BestFilter.h
${BWAPI_INCL_DIR}/BWAPI/BroodwarOutputDevice.h
${BWAPI_INCL_DIR}/BWAPI/Bullet.h
${BWAPI_INCL_DIR}/BWAPI/Bulletset.h
${BWAPI_INCL_DIR}/BWAPI/BulletType.h
${BWAPI_INCL_DIR}/BWAPI/Client.h
${BWAPI_INCL_DIR}/BWAPI/Color.h
${BWAPI_INCL_DIR}/BWAPI/ComparisonFilter.h
${BWAPI_INCL_DIR}/BWAPI/Constants.h
${BWAPI_INCL_DIR}/BWAPI/CoordinateType.h
${BWAPI_INCL_DIR}/BWAPI/DamageType.h
${BWAPI_INCL_DIR}/BWAPI/Error.h
${BWAPI_INCL_DIR}/BWAPI/Event.h
${BWAPI_INCL_DIR}/BWAPI/EventType.h
${BWAPI_INCL_DIR}/BWAPI/ExplosionType.h
${BWAPI_INCL_DIR}/BWAPI/Filters.h
${BWAPI_INCL_DIR}/BWAPI/Flag.h
${BWAPI_INCL_DIR}/BWAPI/Force.h
${BWAPI_INCL_DIR}/BWAPI/Forceset.h
${BWAPI_INCL_DIR}/BWAPI/Game.h
${BWAPI_INCL_DIR}/BWAPI/GameType.h
${BWAPI_INCL_DIR}/BWAPI/Input.h
${BWAPI_INCL_DIR}/BWAPI/Interface.h
${BWAPI_INCL_DIR}/BWAPI/InterfaceEvent.h
${BWAPI_INCL_DIR}/BWAPI/Latency.h
${BWAPI_INCL_DIR}/BWAPI/Order.h
${BWAPI_INCL_DIR}/BWAPI/Player.h
${BWAPI_INCL_DIR}/BWAPI/Playerset.h
${BWAPI_INCL_DIR}/BWAPI/PlayerType.h
${BWAPI_INCL_DIR}/BWAPI/Position.h
${BWAPI_INCL_DIR}/BWAPI/Race.h
${BWAPI_INCL_DIR}/BWAPI/Region.h
${BWAPI_INCL_DIR}/BWAPI/Regionset.h
${BWAPI_INCL_DIR}/BWAPI/SetContainer.h
${BWAPI_INCL_DIR}/BWAPI/Streams.h
${BWAPI_INCL_DIR}/BWAPI/TechType.h
${BWAPI_INCL_DIR}/BWAPI/TournamentAction.h
${BWAPI_INCL_DIR}/BWAPI/Type.h
${BWAPI_INCL_DIR}/BWAPI/UnaryFilter.h
${BWAPI_INCL_DIR}/BWAPI/Unit.h
${BWAPI_INCL_DIR}/BWAPI/UnitCommand.h
${BWAPI_INCL_DIR}/BWAPI/UnitCommandType.h
${BWAPI_INCL_DIR}/BWAPI/Unitset.h
${BWAPI_INCL_DIR}/BWAPI/UnitSizeType.h
${BWAPI_INCL_DIR}/BWAPI/UnitType.h
${BWAPI_INCL_DIR}/BWAPI/UpgradeType.h
)
SOURCE_GROUP("BWAPI" FILES ${BWAPI_INCLUDES})
SET(BWAPI_BWAPI_DIR ${BWAPI_ROOT}/BWAPI/Source)
INCLUDE_DIRECTORIES(${BWAPI_BWAPI_DIR} ${BWAPI_BWAPI_DIR}/BWAPI)
SET(BWAPI_BWAPILIB_DIR ${BWAPI_ROOT}/BWAPILib/Source)
SET(BWAPI_BWAPI_SRC
${BWAPI_BWAPI_DIR}/Assembly.cpp
${BWAPI_BWAPI_DIR}/Assembly.h
${BWAPI_BWAPI_DIR}/BW/AIController.h
${BWAPI_BWAPI_DIR}/BW/Bitmap.cpp
${BWAPI_BWAPI_DIR}/BW/Bitmap.h
${BWAPI_BWAPI_DIR}/BW/BNETCommands.h
${BWAPI_BWAPI_DIR}/BW/CBullet.h
${BWAPI_BWAPI_DIR}/BW/CheatFlags.h
${BWAPI_BWAPI_DIR}/BW/CheatType.cpp
${BWAPI_BWAPI_DIR}/BW/CheatType.h
${BWAPI_BWAPI_DIR}/BW/CImage.cpp
${BWAPI_BWAPI_DIR}/BW/CImage.h
${BWAPI_BWAPI_DIR}/BW/Constants.h
${BWAPI_BWAPI_DIR}/BW/COrder.h
${BWAPI_BWAPI_DIR}/BW/CSprite.cpp
${BWAPI_BWAPI_DIR}/BW/CSprite.h
${BWAPI_BWAPI_DIR}/BW/CThingy.cpp
${BWAPI_BWAPI_DIR}/BW/CThingy.h
${BWAPI_BWAPI_DIR}/BW/CUnit.cpp
${BWAPI_BWAPI_DIR}/BW/CUnit.h
${BWAPI_BWAPI_DIR}/BW/Dialog.cpp
${BWAPI_BWAPI_DIR}/BW/Dialog.h
${BWAPI_BWAPI_DIR}/BW/FlingyID.h
${BWAPI_BWAPI_DIR}/BW/Font.cpp
${BWAPI_BWAPI_DIR}/BW/Font.h
${BWAPI_BWAPI_DIR}/BW/GroupFlags.h
${BWAPI_BWAPI_DIR}/BW/Internal.cpp
${BWAPI_BWAPI_DIR}/BW/MenuPosition.h
${BWAPI_BWAPI_DIR}/BW/MiniTileFlags.h
${BWAPI_BWAPI_DIR}/BW/MovementFlags.h
${BWAPI_BWAPI_DIR}/BW/Offsets.h
${BWAPI_BWAPI_DIR}/BW/OrderFlags.h
${BWAPI_BWAPI_DIR}/BW/OrderTypes.cpp
${BWAPI_BWAPI_DIR}/BW/OrderTypes.h
${BWAPI_BWAPI_DIR}/BW/Path.cpp
${BWAPI_BWAPI_DIR}/BW/Path.h
${BWAPI_BWAPI_DIR}/BW/Pathing.cpp
${BWAPI_BWAPI_DIR}/BW/Pathing.h
${BWAPI_BWAPI_DIR}/BW/PlayerID.h
${BWAPI_BWAPI_DIR}/BW/Position.h
${BWAPI_BWAPI_DIR}/BW/PositionUnitTarget.cpp
${BWAPI_BWAPI_DIR}/BW/PositionUnitTarget.h
${BWAPI_BWAPI_DIR}/BW/Render.cpp
${BWAPI_BWAPI_DIR}/BW/Render.h
${BWAPI_BWAPI_DIR}/BW/Structures.h
${BWAPI_BWAPI_DIR}/BW/Target.cpp
${BWAPI_BWAPI_DIR}/BW/Target.h
${BWAPI_BWAPI_DIR}/BW/TileSet.cpp
${BWAPI_BWAPI_DIR}/BW/TileSet.h
${BWAPI_BWAPI_DIR}/BW/TileType.h
${BWAPI_BWAPI_DIR}/BW/TriggerEngine.cpp
${BWAPI_BWAPI_DIR}/BW/TriggerEngine.h
${BWAPI_BWAPI_DIR}/BW/Triggers.h
${BWAPI_BWAPI_DIR}/BW/UnitPrototypeFlags.h
${BWAPI_BWAPI_DIR}/BW/UnitStatusFlags.h
${BWAPI_BWAPI_DIR}/BW/UnitTarget.cpp
${BWAPI_BWAPI_DIR}/BW/UnitTarget.h
${BWAPI_BWAPI_DIR}/BW/WeaponTargetFlags.h
${BWAPI_BWAPI_DIR}/BWAPI/AutoMenuManager.cpp
${BWAPI_BWAPI_DIR}/BWAPI/AutoMenuManager.h
${BWAPI_BWAPI_DIR}/BWAPI/BulletImpl.cpp
${BWAPI_BWAPI_DIR}/BWAPI/BulletImpl.h
${BWAPI_BWAPI_DIR}/BWAPI/BWtoBWAPI.cpp
${BWAPI_BWAPI_DIR}/BWAPI/BWtoBWAPI.h
${BWAPI_BWAPI_DIR}/BWAPI/Command.h
${BWAPI_BWAPI_DIR}/BWAPI/CommandOptimizer.cpp
${BWAPI_BWAPI_DIR}/BWAPI/CommandOptimizer.h
${BWAPI_BWAPI_DIR}/BWAPI/CommandTemp.h
${BWAPI_BWAPI_DIR}/BWAPI/ForceImpl.cpp
${BWAPI_BWAPI_DIR}/BWAPI/ForceImpl.h
${BWAPI_BWAPI_DIR}/BWAPI/GameBullets.cpp
${BWAPI_BWAPI_DIR}/BWAPI/GameCommands.cpp
${BWAPI_BWAPI_DIR}/BWAPI/GameDrawing.cpp
${BWAPI_BWAPI_DIR}/BWAPI/GameEvents.cpp
${BWAPI_BWAPI_DIR}/BWAPI/GameImpl.cpp
${BWAPI_BWAPI_DIR}/BWAPI/GameImpl.h
${BWAPI_BWAPI_DIR}/BWAPI/GameInternals.cpp
${BWAPI_BWAPI_DIR}/BWAPI/GameMenu.cpp
${BWAPI_BWAPI_DIR}/BWAPI/GameUnits.cpp
${BWAPI_BWAPI_DIR}/BWAPI/Map.cpp
${BWAPI_BWAPI_DIR}/BWAPI/Map.h
${BWAPI_BWAPI_DIR}/BWAPI/PlayerImpl.cpp
${BWAPI_BWAPI_DIR}/BWAPI/PlayerImpl.h
${BWAPI_BWAPI_DIR}/BWAPI/RegionImpl.cpp
${BWAPI_BWAPI_DIR}/BWAPI/RegionImpl.h
${BWAPI_BWAPI_DIR}/BWAPI/Server.cpp
${BWAPI_BWAPI_DIR}/BWAPI/Server.h
${BWAPI_BWAPI_DIR}/BWAPI/UnitImpl.cpp
${BWAPI_BWAPI_DIR}/BWAPI/UnitImpl.h
${BWAPI_BWAPI_DIR}/BWAPI/UnitUpdate.cpp
${BWAPI_BWAPI_DIR}/CodePatch.cpp
${BWAPI_BWAPI_DIR}/CodePatch.h
${BWAPI_BWAPI_DIR}/Config.cpp
${BWAPI_BWAPI_DIR}/Config.h
${BWAPI_BWAPI_DIR}/Detours.cpp
${BWAPI_BWAPI_DIR}/Detours.h
${BWAPI_BWAPI_DIR}/DLLMain.cpp
${BWAPI_BWAPI_DIR}/DLLMain.h
${BWAPI_BWAPI_DIR}/ExceptionFilter.cpp
${BWAPI_BWAPI_DIR}/ExceptionFilter.h
${BWAPI_BWAPI_DIR}/GameUpdate.cpp
${BWAPI_BWAPI_DIR}/Graphics.cpp
${BWAPI_BWAPI_DIR}/Graphics.h
${BWAPI_BWAPI_DIR}/NewHackUtil.cpp
${BWAPI_BWAPI_DIR}/NewHackUtil.h
${BWAPI_BWAPI_DIR}/Resolution.cpp
${BWAPI_BWAPI_DIR}/Resolution.h
${BWAPI_BWAPI_DIR}/Thread.cpp
${BWAPI_BWAPI_DIR}/Thread.h
${BWAPI_BWAPI_DIR}/WMode.cpp
${BWAPI_BWAPI_DIR}/WMode.h
${BWAPI_BWAPILIB_DIR}/AIModule.cpp
${BWAPI_BWAPILIB_DIR}/BroodwarOutputDevice.cpp
${BWAPI_BWAPILIB_DIR}/BulletType.cpp
${BWAPI_BWAPILIB_DIR}/BWAPI.cpp
${BWAPI_BWAPILIB_DIR}/Color.cpp
${BWAPI_BWAPILIB_DIR}/DamageType.cpp
${BWAPI_BWAPILIB_DIR}/Error.cpp
${BWAPI_BWAPILIB_DIR}/Event.cpp
${BWAPI_BWAPILIB_DIR}/ExplosionType.cpp
${BWAPI_BWAPILIB_DIR}/Filters.cpp
${BWAPI_BWAPILIB_DIR}/Forceset.cpp
${BWAPI_BWAPILIB_DIR}/Game.cpp
${BWAPI_BWAPILIB_DIR}/GameType.cpp
${BWAPI_BWAPILIB_DIR}/Order.cpp
${BWAPI_BWAPILIB_DIR}/Player.cpp
${BWAPI_BWAPILIB_DIR}/Playerset.cpp
${BWAPI_BWAPILIB_DIR}/PlayerType.cpp
${BWAPI_BWAPILIB_DIR}/Position.cpp
${BWAPI_BWAPILIB_DIR}/Race.cpp
${BWAPI_BWAPILIB_DIR}/Region.cpp
${BWAPI_BWAPILIB_DIR}/Regionset.cpp
${BWAPI_BWAPILIB_DIR}/Streams.cpp
${BWAPI_BWAPILIB_DIR}/TechType.cpp
${BWAPI_BWAPILIB_DIR}/Unit.cpp
${BWAPI_BWAPILIB_DIR}/UnitCommandType.cpp
${BWAPI_BWAPILIB_DIR}/Unitset.cpp
${BWAPI_BWAPILIB_DIR}/UnitSizeType.cpp
${BWAPI_BWAPILIB_DIR}/UnitType.cpp
${BWAPI_BWAPILIB_DIR}/UpgradeType.cpp
${BWAPI_BWAPILIB_DIR}/WeaponType.cpp
${BWAPI_ROOT}/BWAPICore/APMCounter.cpp
${BWAPI_ROOT}/BWAPICore/APMCounter.h
${BWAPI_ROOT}/BWAPICore/FPSCounter.cpp
${BWAPI_ROOT}/BWAPICore/FPSCounter.h
${BWAPI_ROOT}/BWAPILib/UnitCommand.cpp
)
SOURCE_GROUP("BWAPI/BWAPI" FILES ${BWAPI_BWAPI_SRC})
SET(BWAPI_UTIL_DIR ${BWAPI_ROOT}/Util/Source)
INCLUDE_DIRECTORIES(${BWAPI_UTIL_DIR})
SET(BWAPI_UTIL_SRC
${BWAPI_ROOT}/Storm/storm.cpp
${BWAPI_ROOT}/Storm/storm.h
${BWAPI_UTIL_DIR}/Util/Clamp.h
${BWAPI_UTIL_DIR}/Util/Convenience.h
${BWAPI_UTIL_DIR}/Util/Exceptions.cpp
${BWAPI_UTIL_DIR}/Util/Exceptions.h
${BWAPI_UTIL_DIR}/Util/MemoryFrame.cpp
${BWAPI_UTIL_DIR}/Util/MemoryFrame.h
${BWAPI_UTIL_DIR}/Util/Mutex.cpp
${BWAPI_UTIL_DIR}/Util/Mutex.h
${BWAPI_UTIL_DIR}/Util/Path.h
${BWAPI_UTIL_DIR}/Util/RemoteProcess.cpp
${BWAPI_UTIL_DIR}/Util/RemoteProcess.h
${BWAPI_UTIL_DIR}/Util/RemoteProcessID.h
${BWAPI_UTIL_DIR}/Util/sha1.cpp
${BWAPI_UTIL_DIR}/Util/sha1.h
${BWAPI_UTIL_DIR}/Util/SharedMemory.cpp
${BWAPI_UTIL_DIR}/Util/SharedMemory.h
${BWAPI_UTIL_DIR}/Util/SharedStructure.h
${BWAPI_UTIL_DIR}/Util/StringUtil.h
${BWAPI_UTIL_DIR}/Util/Types.h
)
SOURCE_GROUP("BWAPI/Util" FILES ${BWAPI_UTIL_SRC})
SET(BWAPI_SHARED_DIR ${BWAPI_ROOT}/Shared)
INCLUDE_DIRECTORIES(${BWAPI_SHARED_DIR})
SET(BWAPI_SHARED_SRC
${BWAPI_ROOT}/svnrev.h
${BWAPI_SHARED_DIR}/BulletShared.cpp
${BWAPI_SHARED_DIR}/ForceShared.cpp
${BWAPI_SHARED_DIR}/GameShared.cpp
${BWAPI_SHARED_DIR}/PlayerShared.cpp
${BWAPI_SHARED_DIR}/RegionShared.cpp
${BWAPI_SHARED_DIR}/Templates.h
${BWAPI_SHARED_DIR}/UnitShared.cpp
)
SOURCE_GROUP("BWAPI/Shared" FILES ${BWAPI_SHARED_SRC})
ADD_CUSTOM_COMMAND(OUTPUT ${BWAPI_ROOT}/svnrev.h PRE_BUILD
COMMAND cscript.exe ${BWAPI_ROOT}/revisionUpdate.vbs
WORKING_DIRECTORY ${BWAPI_ROOT})
SET(BWAPI_EVERYTHING
${BWAPI_BWAPI_SRC}
${BWAPI_INCLUDES}
${BWAPI_SHARED_SRC}
${BWAPI_UTIL_SRC}
)
ADD_LIBRARY(${BWAPI_LIB_NAME} STATIC ${BWAPI_EVERYTHING})
SET_TARGET_PROPERTIES(${BWAPI_LIB_NAME} PROPERTIES LINKER_LANGUAGE CXX)
#
#--- DLL goes here ---------------------
# Actually it doesn't. It freezes and never starts.
# TODO: Setting up correct compile flags
#
#ADD_DEFINITIONS(/DYNAMICBASE:NO)
#
#LINK_LIBRARIES(version)
#ADD_LIBRARY(${BWAPI_DLL_NAME} SHARED ${BWAPI_EVERYTHING})
#SET_TARGET_PROPERTIES(${BWAPI_DLL_NAME} PROPERTIES LINKER_LANGUAGE CXX)