From 030f367c33413d7eebc647a24128f9b0adff8dd9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 2 Jan 2025 15:28:13 +1100 Subject: [PATCH] Tools: remove project_netbeans Remove the script that converted an eclipse project to netbeans, it seems unlikely this was widely used since it wrote to an old/outdated project file format. Since this was written, most IDE's (including NetBeans) have improved their CMake support. --- GNUmakefile | 4 - tools/check_source/check_mypy_config.py | 1 - tools/utils_ide/cmake_netbeans_project.py | 263 ---------------------- 3 files changed, 268 deletions(-) delete mode 100755 tools/utils_ide/cmake_netbeans_project.py diff --git a/GNUmakefile b/GNUmakefile index 91bcaa0ca05..b107b38561c 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -41,7 +41,6 @@ Project Files Generate project files for development environments. * project_qtcreator: QtCreator Project Files. - * project_netbeans: NetBeans Project Files. * project_eclipse: Eclipse CDT4 Project Files. Package Targets @@ -465,9 +464,6 @@ test: .FORCE project_qtcreator: .FORCE $(PYTHON) tools/utils_ide/cmake_qtcreator_project.py --build-dir "$(BUILD_DIR)" -project_netbeans: .FORCE - $(PYTHON) tools/utils_ide/cmake_netbeans_project.py "$(BUILD_DIR)" - project_eclipse: .FORCE cmake -G"Eclipse CDT4 - Unix Makefiles" -H"$(BLENDER_DIR)" -B"$(BUILD_DIR)" diff --git a/tools/check_source/check_mypy_config.py b/tools/check_source/check_mypy_config.py index e81a31ab58f..f8ebb859ce4 100644 --- a/tools/check_source/check_mypy_config.py +++ b/tools/check_source/check_mypy_config.py @@ -44,7 +44,6 @@ PATHS_EXCLUDE = set( for p in ( "tools/check_source/clang_array_check.py", - "tools/utils_ide/cmake_netbeans_project.py", "tools/utils_ide/cmake_qtcreator_project.py", "release/datafiles/blender_icons_geom.py", # Uses `bpy` too much. "tests/utils/bl_run_operators.py", # Uses `bpy` too much. diff --git a/tools/utils_ide/cmake_netbeans_project.py b/tools/utils_ide/cmake_netbeans_project.py deleted file mode 100755 index 7a7cab489e5..00000000000 --- a/tools/utils_ide/cmake_netbeans_project.py +++ /dev/null @@ -1,263 +0,0 @@ -#!/usr/bin/env python3 -# SPDX-FileCopyrightText: 2011-2022 Blender Authors -# -# SPDX-License-Identifier: GPL-2.0-or-later - -""" -Example linux usage - python3 ~/blender-git/blender/build_files/cmake/cmake_netbeans_project.py ~/blender-git/cmake - -Windows not supported so far -""" - -import sys - -# until we have arg parsing -import project_info -if not project_info.init(sys.argv[-1]): - sys.exit(1) - -from project_info import ( - SIMPLE_PROJECTFILE, - SOURCE_DIR, - CMAKE_DIR, - PROJECT_DIR, - source_list, - is_project_file, - is_c_header, - # is_py, - cmake_advanced_info, - cmake_compiler_defines, - cmake_cache_var, - project_name_get, -) - - -import os -from os.path import join, dirname, normpath, relpath, exists - - -def create_nb_project_main(): - from xml.sax.saxutils import escape - - files = list(source_list(SOURCE_DIR, filename_check=is_project_file)) - files_rel = [relpath(f, start=PROJECT_DIR) for f in files] - files_rel.sort() - - if SIMPLE_PROJECTFILE: - pass - else: - includes, defines = cmake_advanced_info() - - if (includes, defines) == (None, None): - return - - # for some reason it doesn't give all internal includes - includes = list(set(includes) | set(dirname(f) for f in files if is_c_header(f))) - includes.sort() - - if 0: - PROJECT_NAME = "Blender" - else: - # be tricky, get the project name from git if we can! - PROJECT_NAME = project_name_get() - - make_exe = cmake_cache_var("CMAKE_MAKE_PROGRAM") - make_exe_basename = os.path.basename(make_exe) - - # --------------- NetBeans specific. - defines = [("%s=%s" % cdef) if cdef[1] else cdef[0] for cdef in defines] - defines += [cdef.replace("#define", "").strip() for cdef in cmake_compiler_defines()] - - def file_list_to_nested(files): - # convert paths to hierarchy - paths_nested = {} - - def ensure_path(filepath): - filepath_split = filepath.split(os.sep) - - pn = paths_nested - for subdir in filepath_split[:-1]: - pn = pn.setdefault(subdir, {}) - pn[filepath_split[-1]] = None - - for path in files: - ensure_path(path) - return paths_nested - - PROJECT_DIR_NB = join(PROJECT_DIR, "nbproject") - if not exists(PROJECT_DIR_NB): - os.mkdir(PROJECT_DIR_NB) - - # SOURCE_DIR_REL = relpath(SOURCE_DIR, PROJECT_DIR) - - f = open(join(PROJECT_DIR_NB, "project.xml"), 'w') - - f.write('\n') - f.write('\n') - f.write(' org.netbeans.modules.cnd.makeproject\n') - f.write(' \n') - f.write(' \n') - f.write(' %s\n' % PROJECT_NAME) - f.write(' c,m\n') - f.write(' cpp,cxx,cc,mm\n') - f.write(' h,hxx,hh,hpp,inl\n') - f.write(' UTF-8\n') - f.write(' \n') - f.write(' \n') - f.write(' %s\n' % SOURCE_DIR) # base_root_rel - f.write(' \n') - f.write(' \n') - f.write(' \n') - f.write(' Default\n') - f.write(' 0\n') - f.write(' \n') - f.write(' \n') - f.write(' \n') - f.write(' false\n') - f.write(' \n') - f.write(' \n') - f.write(' \n') - f.write('\n') - - f.close() - - f = open(join(PROJECT_DIR_NB, "configurations.xml"), 'w') - - f.write('\n') - f.write('\n') - f.write(' \n') - f.write(' \n' % SOURCE_DIR) # base_root_rel - - # write files! - files_rel_local = [normpath(relpath(join(CMAKE_DIR, path), SOURCE_DIR)) for path in files_rel] - files_rel_hierarchy = file_list_to_nested(files_rel_local) - # print(files_rel_hierarchy) - - def write_df(hdir, ident): - dirs = [] - files = [] - for key, item in sorted(hdir.items()): - if item is None: - files.append(key) - else: - dirs.append((key, item)) - - for key, item in dirs: - f.write('%s \n' % (ident, key)) - write_df(item, ident + " ") - f.write('%s \n' % ident) - - for key in files: - f.write('%s%s\n' % (ident, key)) - - write_df(files_rel_hierarchy, ident=" ") - - f.write(' \n') - - f.write(' \n') - # f.write(' ../GNUmakefile\n') - f.write(' \n') - - f.write(' \n') - # default, but this dir is in fact not in blender dir so we can ignore it - # f.write(' ^(nbproject)$\n') - f.write(r' ^(nbproject|__pycache__|.*\.py|.*\.html|.*\.blend)$\n') - - f.write(' \n') - f.write(' %s\n' % SOURCE_DIR) # base_root_rel - f.write(' \n') - - f.write(' Makefile\n') - - # paths again - f.write(' \n') - f.write(' \n') - - f.write(' \n') - f.write(' default\n') - f.write(' false\n') - f.write(' false\n') - f.write(' \n') - f.write(' \n') - f.write(' \n') - f.write(' \n') - - f.write(' \n') - f.write(' .\n') - - if make_exe_basename == "ninja": - build_cmd = "ninja" - clean_cmd = "ninja -t clean" - else: - build_cmd = "${MAKE} -f Makefile" - clean_cmd = "${MAKE} -f Makefile clean" - - f.write(' %s\n' % escape(build_cmd)) - f.write(' %s\n' % escape(clean_cmd)) - f.write(' ./bin/blender\n') - del build_cmd, clean_cmd - - def write_toolinfo(): - f.write(' \n') - for inc in includes: - f.write(' %s\n' % inc) - f.write(' \n') - f.write(' \n') - for cdef in defines: - f.write(' %s\n' % escape(cdef)) - f.write(' \n') - - f.write(' \n') - write_toolinfo() - f.write(' \n') - - f.write(' \n') - write_toolinfo() - f.write(' \n') - - f.write(' \n') - f.write(' \n') - # finished makefile info - - f.write(' \n') - - for path in files_rel_local: - is_c = path.endswith(".c") - f.write(' \n' % (3 if is_c else 0)) - f.write(' \n') - - f.write(' \n') - f.write(' \n') - f.write(' \n') - f.write(' %s\n' % os.path.join(CMAKE_DIR, "bin/blender")) - f.write(' %s\n' % SOURCE_DIR) - f.write(' false\n') - f.write(' 0\n') - f.write(' 0\n') - f.write(' \n') - f.write(' \n') - f.write(' \n') - - f.write(' \n') - f.write(' \n') - - # todo - - f.write('\n') - - f.close() - - -def main(): - create_nb_project_main() - - -if __name__ == "__main__": - main()