summaryrefslogtreecommitdiff
path: root/cmake/generate_stubs.py
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/generate_stubs.py')
-rw-r--r--cmake/generate_stubs.py121
1 files changed, 0 insertions, 121 deletions
diff --git a/cmake/generate_stubs.py b/cmake/generate_stubs.py
deleted file mode 100644
index 5478ba7c..00000000
--- a/cmake/generate_stubs.py
+++ /dev/null
@@ -1,121 +0,0 @@
-# Copyright (c) 2015-2025 Vector 35 Inc
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to
-# deal in the Software without restriction, including without limitation the
-# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-# sell copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-
-# Based on BinExport
-
-# Copyright 2011-2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import argparse
-import os
-import re
-import sys
-
-parser = argparse.ArgumentParser(sys.argv[0])
-parser.add_argument("core_header")
-parser.add_argument("build_dir")
-
-options = parser.parse_args()
-
-print(f"GENERATE STUBS: {options.core_header} -> {options.build_dir}")
-print(f"{sys.executable} {' '.join(sys.argv)}")
-
-os.makedirs(options.build_dir, exist_ok=True)
-output_source = os.path.join(options.build_dir, 'stubs.cpp')
-
-with open(output_source, 'w') as stubs:
- stubs.write("""
-// Copyright (c) 2015-2025 Vector 35 Inc
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to
-// deal in the Software without restriction, including without limitation the
-// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-// sell copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-// IN THE SOFTWARE.
-
-// Based on BinExport
-
-// Copyright 2011-2024 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// https://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#define BINARYNINJACORE_LIBRARY
-#include "binaryninjacore.h"
-#undef BINARYNINJACORE_LIBRARY
-
-extern "C" {
-""")
-
- with open(options.core_header, 'r') as header:
- header_conts = header.read()
-
- # Quick preprocess of comments in case we have commented defs
- header_conts = re.sub(r'//.*\n', '\n', header_conts)
-
- # Pull out all core api functions to generate stubs
- for match in re.finditer(
- r'(?m:)\t(BINARYNINJACOREAPI [^;]*);',
- header_conts
- ):
- group = match.group(1)
-
- # Void functions don't have a return (TODO: breaks if we ever return a fn ptr)
- void_group = re.search(r'(?m:)BINARYNINJACOREAPI\s+void\s+.*', group)
- if void_group is not None:
- stubs.write(f'{match.group(1)} {{ }}\n')
- else:
- stubs.write(f'{match.group(1)} {{ return {{ }}; }}\n')
-
- stubs.write("""
-}
- """)