@@ -545,6 +545,37 @@ cc_binary(
545
545
deps = ["@zlib_archive//:zlib" ],
546
546
)
547
547
548
+ objc_library (
549
+ name = "macos_dlg_lib" ,
550
+ srcs = [
551
+ CODE_DIR + "/sys/sys_osx.m"
552
+ ],
553
+ hdrs = [
554
+ "public/dmlab.h" ,
555
+ CODE_DIR + "/deepmind/context.h" ,
556
+ ] + glob (
557
+ [
558
+ CODE_DIR + "/botlib/*.h" ,
559
+ CODE_DIR + "/client/*.h" ,
560
+ CODE_DIR + "/qcommon/*.h" ,
561
+ CODE_DIR + "/sys/*.h" ,
562
+ CODE_DIR + "/server/*.h" ,
563
+ CODE_DIR + "/renderercommon/*.h" ,
564
+ CODE_DIR + "/renderergl1/*.h" ,
565
+ ],
566
+ exclude = [
567
+ CODE_DIR + "/client/fx_*.h" ,
568
+ CODE_DIR + "/qcommon/vm_powerpc_asm.h" ,
569
+ CODE_DIR + "/qcommon/vm_sparc.h" ,
570
+ CODE_DIR + "/renderercommon/tr_types.h" ,
571
+ CODE_DIR + "/renderercommon/tr_public.h" ,
572
+ CODE_DIR + "/renderergl1/tr_local.h" ,
573
+ ],
574
+ ),
575
+ sdk_frameworks = ["Cocoa" , "Carbon" ],
576
+ copts = ["-fno-objc-arc" ],
577
+ )
578
+
548
579
# To link with the SDL frontend, depend on :game_lib_sdl
549
580
# and add "-lGL" to the linker flags.
550
581
cc_library (
@@ -722,7 +753,11 @@ cc_library(
722
753
"//third_party/rl_api:env_c_api" ,
723
754
"@jpeg_archive//:jpeg" ,
724
755
"@sdl_system//:sdl2" ,
725
- ],
756
+ ] + select ({
757
+ ":darwin" : ["@osmesa_system//:osmesa" ],
758
+ ":darwin_x86_64" : ["@osmesa_system//:osmesa" ],
759
+ "//conditions:default" : [],
760
+ }),
726
761
)
727
762
728
763
# To link with the headless GLX frontend, depend on :game_lib_headless_glx
@@ -815,6 +850,94 @@ cc_library(
815
850
],
816
851
)
817
852
853
+ cc_library (
854
+ name = "game_lib_headless_darwin" ,
855
+ srcs = [
856
+ CODE_DIR + "/asm/ftola.c" ,
857
+ CODE_DIR + "/asm/qasm-inline.h" ,
858
+ CODE_DIR + "/asm/snapvector.c" ,
859
+ CODE_DIR + "/cgame/cg_public.h" ,
860
+ CODE_DIR + "/client/libmumblelink.c" ,
861
+ CODE_DIR + "/deepmind/dm_public.h" ,
862
+ CODE_DIR + "/deepmind/dmlab_connect.c" ,
863
+ CODE_DIR + "/game/bg_public.h" ,
864
+ CODE_DIR + "/game/g_public.h" ,
865
+ CODE_DIR + "/null/null_input.c" ,
866
+ CODE_DIR + "/null/null_snddma.c" ,
867
+ CODE_DIR + "/sys/con_log.c" ,
868
+ CODE_DIR + "/sys/con_passive.c" ,
869
+ CODE_DIR + "/sys/sys_main.c" ,
870
+ CODE_DIR + "/sys/sys_unix.c" ,
871
+ CODE_DIR + "/ui/ui_public.h" ,
872
+
873
+ ## OpenGL rendering
874
+ CODE_DIR + "/deepmind/headless_native_macos_glimp.c" ,
875
+ CODE_DIR + "/deepmind/glimp_common.h" ,
876
+ CODE_DIR + "/deepmind/glimp_common.c" ,
877
+ ] + glob (
878
+ [
879
+ CODE_DIR + "/botlib/*.c" ,
880
+ CODE_DIR + "/client/cl_*.c" ,
881
+ CODE_DIR + "/client/snd_*.c" ,
882
+ CODE_DIR + "/qcommon/*.c" ,
883
+ CODE_DIR + "/renderercommon/*.c" ,
884
+ CODE_DIR + "/renderergl1/*.c" ,
885
+ CODE_DIR + "/server/*.c" ,
886
+ ],
887
+ exclude = [
888
+ CODE_DIR + "/renderergl1/tr_subs.c" ,
889
+ CODE_DIR + "/server/sv_rankings.c" ,
890
+ CODE_DIR + "/qcommon/vm_none.c" ,
891
+ CODE_DIR + "/qcommon/vm_powerpc*.c" ,
892
+ CODE_DIR + "/qcommon/vm_sparc.c" ,
893
+ ],
894
+ ),
895
+ hdrs = [
896
+ "public/dmlab.h" ,
897
+ CODE_DIR + "/deepmind/context.h" ,
898
+ ] + glob (
899
+ [
900
+ CODE_DIR + "/botlib/*.h" ,
901
+ CODE_DIR + "/client/*.h" ,
902
+ CODE_DIR + "/qcommon/*.h" ,
903
+ CODE_DIR + "/sys/*.h" ,
904
+ CODE_DIR + "/server/*.h" ,
905
+ CODE_DIR + "/renderercommon/*.h" ,
906
+ CODE_DIR + "/renderergl1/*.h" ,
907
+ ],
908
+ exclude = [
909
+ CODE_DIR + "/client/fx_*.h" ,
910
+ CODE_DIR + "/qcommon/vm_powerpc_asm.h" ,
911
+ CODE_DIR + "/qcommon/vm_sparc.h" ,
912
+ CODE_DIR + "/renderercommon/tr_types.h" ,
913
+ CODE_DIR + "/renderercommon/tr_public.h" ,
914
+ CODE_DIR + "/renderergl1/tr_local.h" ,
915
+ ],
916
+ ),
917
+ copts = [
918
+ "-std=c99" ,
919
+ "-fno-strict-aliasing" ,
920
+ ARCH_VAR ,
921
+ STANDALONE_VAR ,
922
+ ],
923
+ defines = [
924
+ "BOTLIB" ,
925
+ "_GNU_SOURCE" ,
926
+ ],
927
+ textual_hdrs = [
928
+ CODE_DIR + "/renderercommon/tr_types.h" ,
929
+ CODE_DIR + "/renderercommon/tr_public.h" ,
930
+ CODE_DIR + "/renderergl1/tr_local.h" ,
931
+ ],
932
+ deps = [
933
+ ":qcommon_hdrs" ,
934
+ "//deepmind/include:context_headers" ,
935
+ "//third_party/rl_api:env_c_api" ,
936
+ "@jpeg_archive//:jpeg" ,
937
+ "@sdl_system//:sdl2" ,
938
+ ],
939
+ )
940
+
818
941
ASSETS = [
819
942
"assets/default.cfg" ,
820
943
"assets/q3config.cfg" ,
@@ -912,61 +1035,124 @@ cc_binary(
912
1035
":vm_pk3" ,
913
1036
],
914
1037
linkopts = [
915
- "-lGL" ,
916
1038
"-lm" ,
917
- ],
1039
+ ] + select ({
1040
+ ":darwin" : ["-framework OpenGL" ],
1041
+ ":darwin_x86_64" : ["-framework OpenGL" ],
1042
+ "//conditions:default" : ["-lGL" ],
1043
+ }),
918
1044
deps = [
919
1045
":game_lib_sdl" ,
920
1046
"//deepmind/engine:callbacks" ,
921
1047
"//deepmind/engine:context" ,
922
1048
"@zlib_archive//:zlib" ,
923
- ],
1049
+ ] + select ({
1050
+ ":darwin" : [":macos_dlg_lib" ],
1051
+ ":darwin_x86_64" : [":macos_dlg_lib" ],
1052
+ "//conditions:default" : [],
1053
+ }),
924
1054
)
925
1055
926
1056
config_setting (
927
1057
name = "dmlab_lib_sdl" ,
928
1058
values = {"define" : "headless=false" },
929
1059
)
930
1060
1061
+ config_setting (
1062
+ name = "dmlab_lib_sdl_darwin" ,
1063
+ values = {"define" : "headless=false" , "cpu" : "darwin" },
1064
+ )
1065
+
1066
+ config_setting (
1067
+ name = "dmlab_lib_sdl_darwin_x86_64" ,
1068
+ values = {"define" : "headless=false" , "cpu" : "darwin_x86_64" },
1069
+ )
1070
+
931
1071
config_setting (
932
1072
name = "dmlab_headless_hw" ,
933
1073
values = {"define" : "headless=glx" },
934
1074
)
935
1075
1076
+ config_setting (
1077
+ name = "dmlab_headless_hw_darwin" ,
1078
+ values = {"define" : "headless=macos" , "cpu" : "darwin" },
1079
+ )
1080
+
1081
+ config_setting (
1082
+ name = "dmlab_headless_hw_darwin_x86_64" ,
1083
+ values = {"define" : "headless=macos" , "cpu" : "darwin_x86_64" },
1084
+ )
1085
+
936
1086
config_setting (
937
1087
name = "dmlab_headless_sw" ,
938
1088
values = {"define" : "headless=osmesa" },
939
1089
)
940
1090
1091
+ config_setting (
1092
+ name = "dmlab_headless_sw_darwin" ,
1093
+ values = {"define" : "headless=osmesa" , "cpu" : "darwin" },
1094
+ )
1095
+
1096
+ config_setting (
1097
+ name = "dmlab_headless_sw_darwin_x86_64" ,
1098
+ values = {"define" : "headless=osmesa" , "cpu" : "darwin_x86_64" },
1099
+ )
1100
+
941
1101
cc_binary (
942
1102
name = "libdmlab.so" ,
943
1103
linkopts = select ({
944
1104
"//conditions:default" : ["-lOSMesa" ],
1105
+ ":dmlab_headless_hw_darwin" : [
1106
+ "-framework OpenGL" ,
1107
+ ],
1108
+ ":dmlab_headless_hw_darwin_x86_64" : [
1109
+ "-framework OpenGL" ,
1110
+ ],
945
1111
":dmlab_headless_hw" : [
946
1112
"-lGL" ,
947
1113
"-lX11" ,
948
1114
],
1115
+ ":dmlab_lib_sdl_darwin" : [
1116
+ "-framework OpenGL" ,
1117
+ ],
1118
+ ":dmlab_lib_sdl_darwin_x86_64" : [
1119
+ "-framework OpenGL" ,
1120
+ ],
949
1121
":dmlab_lib_sdl" : [
950
1122
"-lGL" ,
951
1123
"-lX11" ,
952
1124
],
953
- }) + [
954
- "-Wl,--version-script" ,
955
- ":dmlab.lds" ,
956
- ],
1125
+ ":dmlab_headless_sw_darwin" : [],
1126
+ ":dmlab_headless_sw_darwin_x86_64" : [],
1127
+ }) + select ({
1128
+ "//conditions:default" : [
1129
+ "-Wl,--version-script" ,
1130
+ ":dmlab.lds" ,
1131
+ ],
1132
+ ":darwin" : [],
1133
+ ":darwin_x86_64" : [],
1134
+ }),
957
1135
linkshared = 1 ,
958
1136
linkstatic = 1 ,
959
1137
deps = select ({
960
1138
"//conditions:default" : [":game_lib_headless_osmesa" ],
961
1139
":dmlab_lib_sdl" : [":game_lib_sdl" ],
962
1140
":dmlab_headless_hw" : [":game_lib_headless_glx" ],
1141
+ ":dmlab_headless_hw_darwin" : [":game_lib_headless_darwin" ],
1142
+ ":dmlab_headless_hw_darwin_x86_64" : [":game_lib_headless_darwin" ],
963
1143
":dmlab_headless_sw" : [":game_lib_headless_osmesa" ],
1144
+ ":dmlab_headless_sw_darwin" : [":game_lib_headless_osmesa" ],
1145
+ ":dmlab_headless_sw_darwin_x86_64" : [":game_lib_headless_osmesa" ],
964
1146
}) + [
965
1147
":dmlab.lds" ,
966
1148
"//deepmind/engine:callbacks" ,
967
1149
"//deepmind/engine:context" ,
968
1150
"@zlib_archive//:zlib" ,
969
- ],
1151
+ ] + select ({
1152
+ ":darwin" : [":macos_dlg_lib" ],
1153
+ ":darwin_x86_64" : [":macos_dlg_lib" ],
1154
+ "//conditions:default" : [],
1155
+ }),
970
1156
)
971
1157
972
1158
cc_library (
@@ -1007,6 +1193,7 @@ cc_binary(
1007
1193
deps = [
1008
1194
":dmlablib" ,
1009
1195
"@python_system//:python" ,
1196
+ # "@numpy_archive//:numpy_headers",
1010
1197
],
1011
1198
)
1012
1199
@@ -1038,3 +1225,15 @@ py_test(
1038
1225
main = "python/random_agent_test.py" ,
1039
1226
deps = [":random_agent" ],
1040
1227
)
1228
+
1229
+ config_setting (
1230
+ name = "darwin" ,
1231
+ values = {"cpu" : "darwin" },
1232
+ visibility = ["//visibility:public" ],
1233
+ )
1234
+
1235
+ config_setting (
1236
+ name = "darwin_x86_64" ,
1237
+ values = {"cpu" : "darwin_x86_64" },
1238
+ visibility = ["//visibility:public" ],
1239
+ )
0 commit comments