project(robot) cmake_minimum_required(VERSION 2.8) set(GAME_ID 2006) if (${RELEASE}) set(CMAKE_BUILD_TYPE "Release") message("release mode") else() set(CMAKE_BUILD_TYPE "Debug") message("debug mode") endif() set(LIB_DIR "ubuntu20.04_g++-9") message(LIB_DIR: ${LIB_DIR} ) set(CMAKE_CXX_FLAGS_RELEASE "-O3 -Wall -g -std=gnu++1z -DGAME_ID=${GAME_ID} -DNDEBUG -DMAP3D -DDT_VIRTUAL_QUERYFILTER -DNEW_WEAPON_SYS=1 -DNEWBIE_ROOM=1 -DUSE_BOOST=1") if (${ASAN}) set(CMAKE_CXX_FLAGS_DEBUG "-Wall -g -std=gnu++1z -DGAME_ID=${GAME_ID} -DMYDEBUG -DCXY -DSXY -DMAP3D -DDT_VIRTUAL_QUERYFILTER -DNEW_WEAPON_SYS=1 -DNEWBIE_ROOM=1 -fsanitize=address -fno-omit-frame-pointer -DUSE_BOOST=1") else() set(CMAKE_CXX_FLAGS_DEBUG "-Wall -g -std=gnu++1z -DGAME_ID=${GAME_ID} -DMYDEBUG -DCXY -DSXY -DMAP3D -DDT_VIRTUAL_QUERYFILTER -DNEW_WEAPON_SYS=1 -DNEWBIE_ROOM=1 -DUSE_BOOST=1") endif() include_directories( AFTER ../../third_party/a8 ../../third_party/f8 /usr/include/mysql /usr/include/jsoncpp /usr/include/hiredis /usr/include/glm ../../third_party ../../third_party/behaviac/inc ../../third_party/recastnavigation/Recast/Include ../../third_party/recastnavigation/Detour/Include ../../third_party/recastnavigation/DetourTileCache/Include behaviac_generated/types behaviac_generated/types/internal . ) link_directories( /usr/lib64/mysql /usr/local/lib ../../third_party/behaviac/lib/${LIB_DIR} ) aux_source_directory(../../third_party/a8/a8 SRC_LIST ) aux_source_directory(../../third_party/f8/f8 SRC_LIST ) aux_source_directory(../../third_party/recastnavigation/Recast/Source SRC_LIST ) aux_source_directory(../../third_party/recastnavigation/Detour/Source SRC_LIST ) aux_source_directory(../../third_party/recastnavigation/DetourTileCache/Source SRC_LIST ) aux_source_directory(behaviac_generated/types/internal SRC_LIST ) aux_source_directory(mtb SRC_LIST ) aux_source_directory(mt SRC_LIST ) aux_source_directory(buff SRC_LIST ) execute_process( COMMAND touch -a cs_proto.pb.h COMMAND touch -a cs_proto.pb.cc COMMAND touch -a cs_msgid.pb.h COMMAND touch -a cs_msgid.pb.cc COMMAND touch -a ss_proto.pb.h COMMAND touch -a ss_proto.pb.cc COMMAND touch -a ss_msgid.pb.h COMMAND touch -a ss_msgid.pb.cc ) aux_source_directory(. SRC_LIST ) set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/../bin/robotserver/bin ) add_executable( robot${GAME_ID} ${SRC_LIST} ) add_custom_target(script_pb_protocol ALL) add_custom_command(TARGET script_pb_protocol PRE_BUILD COMMAND python ../../third_party/tools/scripts/construct/build_pb.py --cpp_out=. --pb_files=cs_proto,cs_msgid,ss_proto,ss_msgid --python_out=../tools/robot/virtualclient ) add_dependencies(robot${GAME_ID} script_pb_protocol) target_link_libraries( robot${GAME_ID} pthread mysqlclient protobuf rt dl util crypto ssl jsoncpp curl hiredis tinyxml2 backtrace boost_context ) if (CMAKE_BUILD_TYPE STREQUAL "Debug") target_link_libraries( robot${GAME_ID} behaviac_gcc_release ) else() target_link_libraries( robot${GAME_ID} tcmalloc behaviac_gcc_release ) endif()