text: from setuptools import Extension, setup
  from Cython.Build import cythonize
  
  libraries = [
      "folly",
      "thriftcpp2",
  ]
  extra_libraries = [
      "picard.cpython-37m-x86_64-linux-gnu",
  ]
  extra_library_dirs = [
      "build/lib.linux-x86_64-3.7/picard",
  ]
  extensions = [
      Extension(
          "picard.libpicard",
          [
              "gen-cpp2/Picard.cpp",
              "gen-cpp2/PicardAsyncClient.cpp",
              "gen-cpp2/Picard_processmap_binary.cpp",
              "gen-cpp2/Picard_processmap_compact.cpp",
              "gen-cpp2/picard_constants.cpp",
              "gen-cpp2/picard_data.cpp",
              "gen-cpp2/picard_metadata.cpp",
              "gen-cpp2/picard_types.cpp"
          ],
          include_dirs=[],
          libraries=libraries,
          library_dirs=[],
          extra_compile_args = ["--std=c++17"]
      ),
      Extension(
          "picard.types",
          [
              "picard/types.pyx",
              "/app/third_party/fbthrift/thrift/lib/py3/metadata.cpp",
              "/app/third_party/fbthrift/thrift/lib/py3/enums.cpp",
          ],
          include_dirs=["../."],
          libraries=libraries + extra_libraries,
          library_dirs=extra_library_dirs,
          extra_compile_args = ["--std=c++17"]
      ),
      Extension(
          "picard.metadata",
          [
              "picard/metadata.pyx",
              "/app/third_party/fbthrift/thrift/lib/py3/metadata.cpp",
              "/app/third_party/fbthrift/thrift/lib/py3/enums.cpp",
          ],
          include_dirs=["../."],
          libraries=libraries + extra_libraries,
          library_dirs=extra_library_dirs,
          extra_compile_args = ["--std=c++17"]
      ),
      Extension(
          "picard.types_fields",
          [
              "picard/types_fields.pyx",
              "/app/third_party/fbthrift/thrift/lib/py3/metadata.cpp",
              "/app/third_party/fbthrift/thrift/lib/py3/enums.cpp",
          ],
          include_dirs=["../."],
          libraries=libraries + extra_libraries,
          library_dirs=extra_library_dirs,
          extra_compile_args = ["--std=c++17"]
      ),
      Extension(
          "picard.types_reflection",
          [
              "picard/types_reflection.pyx",
              "/app/third_party/fbthrift/thrift/lib/py3/metadata.cpp",
              "/app/third_party/fbthrift/thrift/lib/py3/enums.cpp",
          ],
          include_dirs=["../."],
          libraries=libraries + extra_libraries,
          library_dirs=extra_library_dirs,
          extra_compile_args = ["--std=c++17"]
      ),
      Extension(
          "picard.clients",
          [
              "picard/clients.pyx",
              "picard/clients_wrapper.cpp",
              "/app/third_party/fbthrift/thrift/lib/py3/metadata.cpp",
              "/app/third_party/fbthrift/thrift/lib/py3/enums.cpp",
          ],
          include_dirs=["../."],
          libraries=libraries + extra_libraries,
          library_dirs=extra_library_dirs,
          extra_compile_args = ["--std=c++17"]
      ),
      Extension(
          "picard.services",
          [
              "picard/services.pyx",
              "picard/services_wrapper.cpp",
              "/app/third_party/fbthrift/thrift/lib/py3/metadata.cpp",
              "/app/third_party/fbthrift/thrift/lib/py3/enums.cpp",
          ],
          include_dirs=["../."],
          libraries=libraries + extra_libraries,
          library_dirs=extra_library_dirs,
          extra_compile_args = ["--std=c++17"]
      ),
      Extension(
          "picard.services_reflection",
          [
              "picard/services_reflection.pyx",
              "/app/third_party/fbthrift/thrift/lib/py3/metadata.cpp",
              "/app/third_party/fbthrift/thrift/lib/py3/enums.cpp",
          ],
          include_dirs=["../."],
          libraries=libraries + extra_libraries,
          library_dirs=extra_library_dirs,
          extra_compile_args = ["--std=c++17"]
      )
  ]
  
  setup(
      ext_modules=cythonize(extensions, language_level=3)
  )
  