Files
meteorbot-old/bot/external/Botcraft/Examples/CMakeLists.txt
T
2024-04-30 22:07:50 -06:00

37 lines
1.9 KiB
CMake

# Define a macro that can be reused to quickly setup an Example project
# without all the boilerplate code
macro(add_example include_folders source_files)
add_executable(${PROJECT_NAME} ${source_files})
target_include_directories(${PROJECT_NAME} PUBLIC ${include_folders})
target_link_libraries(${PROJECT_NAME} botcraft)
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 17)
set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER Examples)
set_target_properties(${PROJECT_NAME} PROPERTIES DEBUG_POSTFIX "_d")
set_target_properties(${PROJECT_NAME} PROPERTIES RELWITHDEBINFO_POSTFIX "_rd")
if(MSVC)
# To avoid having folder for each configuration when building with Visual
set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BOTCRAFT_OUTPUT_DIR}/bin")
set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BOTCRAFT_OUTPUT_DIR}/bin")
set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${BOTCRAFT_OUTPUT_DIR}/bin")
set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${BOTCRAFT_OUTPUT_DIR}/bin")
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DEBUGGER_WORKING_DIRECTORY "${BOTCRAFT_OUTPUT_DIR}/bin")
else()
set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${BOTCRAFT_OUTPUT_DIR}/bin")
endif(MSVC)
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
endmacro()
add_subdirectory(0_HelloWorld)
add_subdirectory(1_UserControlledExample)
add_subdirectory(2_ChatCommandExample)
add_subdirectory(3_SimpleAFKExample)
add_subdirectory(4_MapCreatorExample)
add_subdirectory(5_MobHitterExample)
if (PROTOCOL_VERSION STRGREATER "470") # 1.14+
add_subdirectory(6_DispenserFarmExample)
endif()
add_subdirectory(7_WorldEaterExample)