Current Behavior
Currently, the project generators for Windows (Visual Studio) and macOS (XCode) use templates that have certain dependencies hardcoded. These include:
- Libraries
- Include paths
- Library paths
Desired Behavior
The templates should be refactored to dynamically include these dependencies based on meta-tags (placeholders) such as:
${libraries}
${libraryPaths}
${includePaths}
These placeholders are already being generated in the NativeCodeBuilder class and should be reused in the template system.
Why This Change Is Needed
Hardcoded dependencies reduce flexibility and maintainability. By using the existing placeholder system, we can:
- Centralize dependency management
- Ensure consistency across different generators
- Simplify future updates to dependencies
- Leverage already implemented logic in
NativeCodeBuilder
Affected Components
- Windows Visual Studio project generator
- macOS XCode project generator
- Associated templates
Additional Context
The required meta-tags (${libraries}, ${libraryPaths}, ${includePaths}) are already available from NativeCodeBuilder. This change primarily involves updating the templates to use these placeholders instead of hardcoded values.
Acceptance Criteria
Current Behavior
Currently, the project generators for Windows (Visual Studio) and macOS (XCode) use templates that have certain dependencies hardcoded. These include:
Desired Behavior
The templates should be refactored to dynamically include these dependencies based on meta-tags (placeholders) such as:
${libraries}${libraryPaths}${includePaths}These placeholders are already being generated in the
NativeCodeBuilderclass and should be reused in the template system.Why This Change Is Needed
Hardcoded dependencies reduce flexibility and maintainability. By using the existing placeholder system, we can:
NativeCodeBuilderAffected Components
Additional Context
The required meta-tags (
${libraries},${libraryPaths},${includePaths}) are already available fromNativeCodeBuilder. This change primarily involves updating the templates to use these placeholders instead of hardcoded values.Acceptance Criteria
${libraries},${libraryPaths},${includePaths}placeholdersNativeCodeBuilder