# Generated by cmake2bazel.

# Caesar Task Force@Data Storage Product Line

load ("//:global_options.bzl","GLOBAL_COPTS","GLOBAL_LOCAL_DEFINES","GLOBAL_LINKOPTS",)

package(default_visibility = ["//visibility:public"])

COMMON_LINKOPTS = GLOBAL_LINKOPTS + []

COMMON_LOCAL_DEFINES = GLOBAL_LOCAL_DEFINES + [
    "KNL_PREFIX",
    "WSEC_AES_GCM_SUPPORT",
    "WSEC_COMPILE_CAC_OPENSSL",
    "WSEC_COMPILE_MIP_OTHER",
    "WSEC_DEBUG",
    "WSEC_ERR_CODE_BASE=0x10000000",
    "WSEC_TRACE_MEMORY",
    "WSEC_USE_OPENSSL_110",
    "_OGRAC_LCOV_TEST_",
    "_CMS_LCOV_TEST_",
    "_DEBUG",
    "_GNU_SOURCE",
    "_LARGEFILE64_SOURCE",
    "_REENTRANT",
]

COMMON_COPTS = GLOBAL_COPTS + [
    "-std=c99",
    "-g",
    "-ldl",
    "-pthread",
    "-g",
    "-mtune=nocona",
    "-fsigned-char",
    "-msse4.2",
    "-fprofile-arcs",
    "-ftest-coverage",
    "-fPIC",
    "-Wall",
    "-MMD",
    "-fno-strict-aliasing",
    "-fms-extensions",
    "-fvisibility=default",
    "-fstack-protector-strong",
    "--param",
    "ssp-buffer-size=4",
    "-fno-common",
    "-Wtrampolines",
    "-freg-struct-return",
    "-pipe",
    # "-Werror", #TODO
    "-Wno-psabi",
    "-Wno-stringop-overflow",
]

cc_binary(
    name = "ogracd",
    srcs =  [
        "//pkg/src:version/gs_version.c",
        "//pkg/src/common:common_hdrs",
        "//pkg/src/protocol:libogprotocol.so",
        "//pkg/src/driver/gsc:libogclient.so",
        "//pkg/src/common:libogcommon.so",
    ],
    linkstatic = True,
    local_defines = [
        "GETDBVERSION=ogracd_get_dbversion",
    ] + COMMON_LOCAL_DEFINES,
    copts =  [
        "-fPIE",
        '-DGS_LIB_VERSION="static char* str_GS_LIB_VERSION=\'oGRAC Debug 2.0.0 a1d2efcd5a\'"',
    ] + COMMON_COPTS,
    linkopts = [
        "-ldl",
        "-pthread",
        "-g",
        "-pie",
        "-fprofile-arcs",
        "-ftest-coverage",
        "-Wl,-z,noexecstack",
        "-Wl,-z,relro",
        "-Wl,-z,now",
        "-Wl,-Bsymbolic",
        "-rdynamic",
        "-lm",
        "-lrt",
        "-lpthread",
        "-ldl",
        "-Wl,-Bstatic",
        "-Wl,-Bdynamic",
    ] + COMMON_LINKOPTS,
    deps = [
        ":ogserver",
        "//pkg/src/sql:ogracsql",
        "//pkg/src/kernel:ogkernel",
        "//pkg/src/cluster:ogcluster",
        "//pkg/src/rc:ogrc",
        "//pkg/src/mec:ogmes",
        "//pkg/src/cms:ogcms",
        "//library:z",
        "//library:zstd",
        "//library:protobuf-c",
        "//library:cgw_client",
        "//library:dbstorClient",
        "//library:dbstor_tool",
        "//library:nomlnx/xnetlite",
        "//library:iod",
        "//library:lwt",
        "//library:dplog",
        "//library:ftds_stub",
        "//library:ftdsclient",
        "//library:dposax",
        "//library:securec",
        "//library:scpart_mgr",
        "//library:mxml",
        "//library:dpdiagnose",
        "//library:patmatch",
        "//library:dpumm_mm",
        "//library:dphpuc_roc",
        "//library:dptracepoint",
        "//library:dpumm_cmm",
        "//library:osax_util",
        "//library:dswcore_mem",
        "//library:byte_buffer",
        "//library:simpopb",
        "//library:dntf",
        "//library:dposen",
        "//library:cmclient",
        "//library:kmc",
        "//library:kmcext",
        "//library:sdp",
        "//library:sqlite3",
    ],
)

cc_library (
    name = "ogserver",
    srcs = [
        "//pkg/src/shard:adapter/shd_adapter.c",
        "//pkg/src/shard:adapter/shd_adapter_concat.c",
        "//pkg/src/shard:adapter/shd_adapter_delete.c",
        "//pkg/src/shard:adapter/shd_adapter_ex.c",
        "//pkg/src/shard:adapter/shd_adapter_insert.c",
        "//pkg/src/shard:adapter/shd_adapter_merge.c",
        "//pkg/src/shard:adapter/shd_adapter_update.c",
        "//pkg/src/shard:ddl/shd_ddl_executor.c",
        "//pkg/src/shard:ddl/shd_dist_ddl.c",
        "//pkg/src/shard:dml/shd_delete.c",
        "//pkg/src/shard:dml/shd_insert.c",
        "//pkg/src/shard:dml/shd_merge.c",
        "//pkg/src/shard:dml/shd_update.c",
        "//pkg/src/shard:gts_sync_operation.c",
        "//pkg/src/shard:rebalance/shd_rebalance.c",
        "//pkg/src/shard:route/shd_route.c",
        "//pkg/src/shard:route/shd_route_hash.c",
        "//pkg/src/shard:route/shd_route_list.c",
        "//pkg/src/shard:route/shd_route_range.c",
        "//pkg/src/shard:route/shd_route_replication.c",
        "//pkg/src/shard:shd_comm.c",
        "//pkg/src/shard:shd_conn_remote.c",
        "//pkg/src/shard:shd_connpool.c",
        "//pkg/src/shard:shd_datanode.c",
        "//pkg/src/shard:shd_distribute_rule.c",
        "//pkg/src/shard:shd_executor.c",
        "//pkg/src/shard:shd_expr.c",
        "//pkg/src/shard:shd_group.c",
        "//pkg/src/shard:shd_hash_pool.c",
        "//pkg/src/shard:shd_interface.c",
        "//pkg/src/shard:shd_join.c",
        "//pkg/src/shard:shd_slowsql.c",
        "//pkg/src/shard:shd_parser.c",
        "//pkg/src/shard:shd_parser_rule.c",
        "//pkg/src/shard:shd_parser_verify.c",
        "//pkg/src/shard:shd_plan.c",
        "//pkg/src/shard:shd_remote.c",
        "//pkg/src/shard:shd_remote_detect_log.c",
        "//pkg/src/shard:shd_remote_droute.c",
        "//pkg/src/shard:shd_remote_ex.c",
        "//pkg/src/shard:shd_remote_params.c",
        "//pkg/src/shard:shd_remote_route.c",
        "//pkg/src/shard:shd_remote_scan.c",
        "//pkg/src/shard:shd_rownum.c",
        "//pkg/src/shard:shd_sequence.c",
        "//pkg/src/shard:shd_sync_info.c",
        "//pkg/src/shard:shd_trans_aggr.c",
        "//pkg/src/shard:shd_trans_clean.c",
        "//pkg/src/shard:shd_trans_pushdown.c",
        "//pkg/src/shard:shd_trans_sinkall.c",
        "//pkg/src/shard:shd_transaction.c",
        "//pkg/src/shard:shd_transform.c",
        "//pkg/src/shard:shd_verifier.c",
        "//pkg/src/shard:shd_walk.c",
        "//pkg/src/shard:shd_write.c",
        "params/load_kernel.c",
        "params/load_others.c",
        "params/load_server.c",
        "params/set_kernel.c",
        "params/set_others.c",
        "params/set_server.c",
        "params/srv_param.c",
        "params/srv_param_common.c",
        "params/srv_params_raft_and_log.c",
        "srv_agent.c",
        "srv_blackbox.c",
        "srv_emerg.c",
        "srv_ext_proc.c",
        "srv_gss_adapter.c",
        "srv_instance.c",
        "srv_job.c",
        "srv_lsnr.c",
        "srv_main.c",
        "srv_reactor.c",
        "srv_replica.c",
        "srv_rm.c",
        "srv_sess_security.c",
        "srv_session.c",
        "srv_sga.c",
        "srv_stat.c",
        "srv_synctimer.c",
        "srv_view.c",
        "srv_view_dtc_local.c",
        "srv_view_gdv.c",
        "srv_view_lock.c",
        "srv_view_sess.c",
        "srv_view_sga.c",
        "srv_view_stat.c",
        ":server_hdrs",
        ":params",
        "//pkg/src/common:common_hdrs",
        "//pkg/src/cms:interface_hdrs",
        "//pkg/src/shard:adapter",
        "//pkg/src/shard:route",
        "//pkg/src/shard:dml",
        "//pkg/src/shard:ddl",
        "//pkg/src/shard:rebalance",
        "//pkg/src/shard:dblink",
        "//pkg/src/extproc:extproc_hdrs",
        "//pkg/src/driver/gsc:gsc_hdrs",
        "//pkg/src/rc:rc_hdrs",
        "//pkg/src/sql:function",
        "//pkg/src/sql:optimizer",
        "//pkg/src/sql:catalog",
        "//pkg/src/sql:gdv",
        "//pkg/src/upgrade_check",
        "//platform:huawei_kmc_hdrs",
    ],
    linkstatic = True,
    local_defines = COMMON_LOCAL_DEFINES,
    copts = [
        "-Ipkg/src/server",
        "-Ipkg/src/server/params",
        "-Ipkg/src/cms/interface",
        "-Ipkg/src/rc",
        "-Ipkg/src/extproc",
        "-Ipkg/src/cluster",
        "-Ipkg/src/zenfs",
        "-Ipkg/src/sql/gdv",
        "-Ipkg/src/upgrade_check",
        "-Ibuild/include",
        "-Iopen_source/libaio/include",
        "-Iopen_source/odbc/include",
        "-Iopen_source/openssl/include/openssl",
        "-Iopen_source/openssl/include",
        "-Iopen_source/pcre/include",
        "-Iopen_source/zlib/include",
        "-Iopen_source/Zstandard/include",
        "-Iplatform/huawei_kmc/include",
        "-Iplatform/huawei_kmc/src/cac",
        "-Iplatform/huawei_kmc/src/common",
        "-Iplatform/huawei_kmc/src/kmc",
        "-Iplatform/huawei_kmc/src/mip",
        "-Iplatform/huawei_kmc/src/sdp",
        "-Iplatform/huawei_security/include",
        "-Ibuild_dependence/libaio/include",
        "-Ipkg/src/common/variant",
        "-Ipkg/src/common",
        "-Ipkg/src/driver",
        "-Ipkg/src/driver/gsc",
        "-Ipkg/src/driver/odbc",
        "-Ipkg/src/protocol",
        "-Ipkg/src/shard",
        "-Ipkg/src/shard/rebalance",
        "-Ipkg/src/shard/ddl",
        "-Ipkg/src/shard/dml",
        "-Ipkg/src/shard/route",
        "-Ipkg/src/shard/adapter",
        "-Ipkg/src/shard/dblink",
        "-Ipkg/src/sql",
        "-Ipkg/src/sql/catalog",
        "-Ipkg/src/sql/executor",
        "-Ipkg/src/sql/json",
        "-Ipkg/src/sql/node",
        "-Ipkg/src/sql/function",
        "-Ipkg/src/sql/optimizer",
        "-Ipkg/src/sql/parallel",
        "-Ipkg/src/sql/parser",
        "-Ipkg/src/sql/parser_ddl",
        "-Ipkg/src/sql/plan",
        "-Ipkg/src/sql/pl",
        "-Ipkg/src/sql/pl/include",
        "-Ipkg/src/sql/pl/clang",
        "-Ipkg/src/sql/pl/debug",
        "-Ipkg/src/sql/pl/meta",
        "-Ipkg/src/sql/pl/persist",
        "-Ipkg/src/sql/pl/type",
        "-Ipkg/src/sql/pl/ast",
        "-Ipkg/src/sql/pl/parser",
        "-Ipkg/src/sql/pl/common",
        "-Ipkg/src/sql/pl/executor",
        "-Ipkg/src/sql/verifier",
        "-Ipkg/src/kernel",
        "-Ipkg/src/kernel/backup",
        "-Ipkg/src/kernel/buffer",
        "-Ipkg/src/kernel/catalog",
        "-Ipkg/src/kernel/common",
        "-Ipkg/src/kernel/daemon",
        "-Ipkg/src/kernel/flashback",
        "-Ipkg/src/kernel/include",
        "-Ipkg/src/kernel/index",
        "-Ipkg/src/kernel/lob",
        "-Ipkg/src/kernel/persist",
        "-Ipkg/src/kernel/replication",
        "-Ipkg/src/kernel/sequence",
        "-Ipkg/src/kernel/statistics",
        "-Ipkg/src/kernel/table",
        "-Ipkg/src/kernel/tablespace",
        "-Ipkg/src/kernel/xact",
        "-Ipkg/src/utils",
        "-Ipkg/src/utils/gspe",
        "-Ipkg/src/utils/ogsql",
        "-Ipkg/src/utils/ogbackup",
        "-Ipkg/src/gstbox",
        "-Ipkg/src/ztrst",
        "-Ipkg/src/gbp",
        "-Ipkg/src/mec",
    ] + COMMON_COPTS,
    linkopts = COMMON_LINKOPTS,
    deps =  [
        "//pkg/src/cluster:ogcluster",
        "//library:dif_usr",
    ],
)

filegroup(
    name = "server_hdrs",
    srcs = glob(["*.h"]),
)

filegroup(
    name = "params",
    srcs = glob(["params/*.h"]),
)