TOPIC
This file contains release notes for the Project Builder application distributed with OpenStep 4.2. It includes information specific to OPENSTEP for Mach and to OPENSTEP for Windows as well as information general to both platforms. Project Builder provides integrated code development capabilities for the sophisticated developer. Its main window combines a project browser with a full-featured code editor. You can bring up panels for building, debugging, finding information in the project, and setting project attributes. To familiarize yourself with Project Builder's capabilities and features, you can do one of the following" DISCUSSION
Information about frameworks is shared across projects that link against them and can be accessed from the project find panel associated with each such projects. Information about other header files you may import is not currently stored. All existing preferences, indexing panel operations, and find panel queries now apply to the new Fuzzy Indexing feature.
A new "Syntax Coloring" preferences pane has been added to allow you to switch the syntax coloring off or change the font and color for each lexical category of text. The current set of lexical categories include: Comments, Keywords, Strings, and Numbers. It is also possible to use the normal text attributes for a lexical category inherited from the existing "Fonts, Sizes & Colors" preferences pane. Tokens that don't appear in one of the lexical categories (such as identifiers) will always inherit these default attributes. Switching syntax coloring on and off takes place right away. Setting attributes for one or more tokens "dirties" the window; these settings are applied and saved to the defaults when Set is pressed. Revert takes you back to the previously-saved syntax-coloring preferences.
When you first open a project that uses the old makefiles, Project Builder displays a panel that lets you do one of the following:
If you convert to the new makefiles, the project defines this path to them in MAKEFILEDIR:
$NEXT_ROOT/NextDeveloper/Makefiles/Project Builder_makefiles
The original 4.0 Makefiles are located in this directory:
$NEXT_ROOT/NextDeveloper/Makefiles/project
Currently, you can override the MAKEFILEDIR attribute for your project in Makefile.preamble by setting it to the desired directory. Or you can edit the MAKEFILEDIR attribute in Project Builder.project, but not through the user interface of Project Builder. You are strongly encouraged to convert your projects to the new makefiles if that is feasible. For instance, a new facility that automatically generates .def files (see below) depends on these makefiles. However, you might keep older makefiles intact for those exceptional projects that depend upon unique implementation details in the project makefiles.
If you currently have a .def file for a framework, and it is not highly customized, delete it and let Project Builder regenerate it for you. Otherwise, leave it where it is. Project Builder creates a .def file only if there isn't one already in the project.
The .def file that Project Builder creates is comprehensive, so if you want to create a customized .def file that is a subset of it, first build your project. Then add the generated .def file in derived_src to Supporting Files in your project and edit it as necessary.
Note: You should use the CONSTANT keyword instead DATA in your .def file. The export of framework functions also requires a little extra code. For more on both of these items, see "Known Problems in this Release, " below.
In creating the .def file for frameworks and dynamic libraries (DLLs), Project Builder handles Objective-C symbols and data but not functions. If you have functions in your framework that need to be callable from the outside, define certain macros in a header file and then use them in your function declarations. These macros allow you to export non-static functions from the DLL (FRAMEWORK_EXTERN) or to declare them as extern, but not exported (FRAMEWORK_PRIVATE_EXTERN). The following example shows how (substitute your own framework name for FRAMEWORK):
#ifndef _FRAMEWORKDEFINES_H #define _FRAMEWORKDEFINES_H
#if defined(WIN32)
// // For Windows //
#ifndef _FRAMEWORK_BUILDING_DLL #define _FRAMEWORK_WINDOWS_DLL __declspec(dllimport) #else #define _FRAMEWORK_WINDOWS_DLL __declspec(dllexport) #endif
#ifdef __cplusplus #define FRAMEWORK_EXTERN extern "C" _FRAMEWORK_WINDOWS_DLL #define FRAMEWORK_PRIVATE_EXTERN extern #else #define FRAMEWORK_EXTERN _FRAMEWORK_WINDOWS_DLL extern #define FRAMEWORK_PRIVATE_EXTERN extern #endif
You need to import this header in all your other headers and declare your function prototypes accordingly. Then make sure you define FRAMEWORK_BUILDING_DLL when building your framework.
Converting 3.x applications to 4.x
#import <AppKit/AppKit.h>
int main(int argc, const char *argv[]) { return NSApplicationMain(argc, argv); }
Reference: 76564
Problem: Files containing C++ constructs are not indexed
Description: The symbol index is not built for source code modules that contain C++ code or for .h files that appear to contain declarations specific to C++. As well, reference queries do not work in the project find panel.
Reference: 76321
Problem: Project Builder edit caches file changes in memory between close and reopen of a project
Description: If you choose not to save changes to a file when closing a project, when the project is opened again Project Builder reuses the file buffer containing the unsaved changes for that file, instead of the version of the file from the disk
Reference: 76133
Problem: File renaming doesn't work properly
Description: Using the Inspector to change the name of a file causes exceptions to be raised inside Project Builder.
Reference: 76114
Problem: Yellow arrows are not displayed in the browser
Description: If you open a file and then index the project, the yellow arrow, which signifies the file is indexed, is not displayed for that file. The arrows are displayed for other files.
Reference: 77979
Problem: LIBRARY_STYLE=STATIC excludes frameworks
Description: If your builds terminate with link errors claiming that imported frameworks are undefined, check your Makefile.preamble to see if the following line is uncommented.
LIBRARY_STATIC = STYLE
If it is uncommented, prepend a hash character (#) to comment it out. Due to a change in the make process, "LIBRARY_STYLE=STATIC" tells the linker not to link against frameworks (such as AppKit and Foundation), even if they are added to the project.
Reference: 69061
Problem: Builds will fail if NEXT_ROOT has been modified to contain backward slashes.
Description: The installer specifies NEXT_ROOT with forward slashes, for example:
C:/NeXT/
Do not edit this variable in the Environment section of the System control panel, even if to change the forward slashes to backward slashes.
Reference: 72307
Problem: The Microsoft linker emits a bogus warning about CONSTANT keywords.
Description: When you build framework projects, you will see messages complaining about the use of CONSTANT keywords in your .def file. Because of problems with the linker, CONSTANT should be used in place of DATA. You can ignore the warnings.
Reference: 76192
Problem: Find results don't show the documentation icon for methods.
Description: After indexing the project, a find on a method name does not show the documentution icon (a book) for methods which have documentation.
Reference: 75239
Problem: Project Builder thinks some .nib files have been modifed
Description: Open a project and then start Interface Builder. Open a .nib file with Interface Builder, not by double-clicking on the nib inside Project Builder. Build the project in Project Builder and Project Builder will warn that the .nib file is modified, when it is not. The workaround is to start Interface Builder by double-clicking the nib inside Project Builder.
Reference: 67785
Problem: Breakpoints on functions or methods without debugging information aren't displayed in the breakpoint inspector.
Reference: 67712
Problem: Moving a breakpoint icon doesn't update the line number in the Breakpoint inspector. However, the location of the breakpoint is updated in gdb. |
Document Information | |
Product Area: | Apple Software |
Category: | OPENSTEP |
Sub Category: | Release Notes |
Keywords: |
Copyright © 2000 Apple Computer, Inc. All rights reserved.