-
Notifications
You must be signed in to change notification settings - Fork 3
chore: switch to an XcodeGen project file #32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
ThomasK33
merged 1 commit into
main
from
01-24-chore_switch_to_an_xcodegen_project_file
Jan 29, 2025
+1,021
−2,046
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
name: "Setup Nix devshell" | ||
description: "This action sets up a nix devshell environment" | ||
runs: | ||
using: "composite" | ||
steps: | ||
- name: Setup Nix | ||
uses: DeterminateSystems/nix-installer-action@e50d5f73bfe71c2dd0aa4218de8f4afa59f8f81d # v16 | ||
|
||
- name: Setup GHA Nix cache | ||
uses: DeterminateSystems/magic-nix-cache-action@6221693898146dc97e38ad0e013488a16477a4c4 # v9 | ||
|
||
- name: Enter devshell | ||
uses: nicknovitski/nix-develop@9be7cfb4b10451d3390a75dc18ad0465bed4932a # v1.2.1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,293 @@ | ||
# Xcode specifics | ||
# Created by https://www.toptal.com/developers/gitignore/api/xcode,jetbrains,macos,direnv,swift,swiftpm,objective-c | ||
# Edit at https://www.toptal.com/developers/gitignore?templates=xcode,jetbrains,macos,direnv,swift,swiftpm,objective-c | ||
|
||
### direnv ### | ||
.direnv | ||
.envrc | ||
|
||
### JetBrains ### | ||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider | ||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 | ||
|
||
# User-specific stuff | ||
.idea/**/workspace.xml | ||
.idea/**/tasks.xml | ||
.idea/**/usage.statistics.xml | ||
.idea/**/dictionaries | ||
.idea/**/shelf | ||
|
||
# AWS User-specific | ||
.idea/**/aws.xml | ||
|
||
# Generated files | ||
.idea/**/contentModel.xml | ||
|
||
# Sensitive or high-churn files | ||
.idea/**/dataSources/ | ||
.idea/**/dataSources.ids | ||
.idea/**/dataSources.local.xml | ||
.idea/**/sqlDataSources.xml | ||
.idea/**/dynamic.xml | ||
.idea/**/uiDesigner.xml | ||
.idea/**/dbnavigator.xml | ||
|
||
# Gradle | ||
.idea/**/gradle.xml | ||
.idea/**/libraries | ||
|
||
# Gradle and Maven with auto-import | ||
# When using Gradle or Maven with auto-import, you should exclude module files, | ||
# since they will be recreated, and may cause churn. Uncomment if using | ||
# auto-import. | ||
# .idea/artifacts | ||
# .idea/compiler.xml | ||
# .idea/jarRepositories.xml | ||
# .idea/modules.xml | ||
# .idea/*.iml | ||
# .idea/modules | ||
# *.iml | ||
# *.ipr | ||
|
||
# CMake | ||
cmake-build-*/ | ||
|
||
# Mongo Explorer plugin | ||
.idea/**/mongoSettings.xml | ||
|
||
# File-based project format | ||
*.iws | ||
|
||
# IntelliJ | ||
out/ | ||
|
||
# mpeltonen/sbt-idea plugin | ||
.idea_modules/ | ||
|
||
# JIRA plugin | ||
atlassian-ide-plugin.xml | ||
|
||
# Cursive Clojure plugin | ||
.idea/replstate.xml | ||
|
||
# SonarLint plugin | ||
.idea/sonarlint/ | ||
|
||
# Crashlytics plugin (for Android Studio and IntelliJ) | ||
com_crashlytics_export_strings.xml | ||
crashlytics.properties | ||
crashlytics-build.properties | ||
fabric.properties | ||
|
||
# Editor-based Rest Client | ||
.idea/httpRequests | ||
|
||
# Android studio 3.1+ serialized cache file | ||
.idea/caches/build_file_checksums.ser | ||
|
||
### JetBrains Patch ### | ||
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 | ||
|
||
# *.iml | ||
# modules.xml | ||
# .idea/misc.xml | ||
# *.ipr | ||
|
||
# Sonarlint plugin | ||
# https://plugins.jetbrains.com/plugin/7973-sonarlint | ||
.idea/**/sonarlint/ | ||
|
||
# SonarQube Plugin | ||
# https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin | ||
.idea/**/sonarIssues.xml | ||
|
||
# Markdown Navigator plugin | ||
# https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced | ||
.idea/**/markdown-navigator.xml | ||
.idea/**/markdown-navigator-enh.xml | ||
.idea/**/markdown-navigator/ | ||
|
||
# Cache file creation bug | ||
# See https://youtrack.jetbrains.com/issue/JBR-2257 | ||
.idea/$CACHE_FILE$ | ||
|
||
# CodeStream plugin | ||
# https://plugins.jetbrains.com/plugin/12206-codestream | ||
.idea/codestream.xml | ||
|
||
# Azure Toolkit for IntelliJ plugin | ||
# https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij | ||
.idea/**/azureSettings.xml | ||
|
||
### macOS ### | ||
# General | ||
.DS_Store | ||
UserInterfaceState.xcuserstate | ||
.AppleDouble | ||
.LSOverride | ||
|
||
# Icon must end with two \r | ||
Icon | ||
|
||
|
||
# Thumbnails | ||
._* | ||
|
||
# Files that might appear in the root of a volume | ||
.DocumentRevisions-V100 | ||
.fseventsd | ||
.Spotlight-V100 | ||
.TemporaryItems | ||
.Trashes | ||
.VolumeIcon.icns | ||
.com.apple.timemachine.donotpresent | ||
|
||
# Directories potentially created on remote AFP share | ||
.AppleDB | ||
.AppleDesktop | ||
Network Trash Folder | ||
Temporary Items | ||
.apdisk | ||
|
||
### macOS Patch ### | ||
# iCloud generated files | ||
*.icloud | ||
|
||
### Objective-C ### | ||
# Xcode | ||
# | ||
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore | ||
|
||
## User settings | ||
xcuserdata/ | ||
|
||
# JetBrains | ||
.idea/ | ||
## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) | ||
*.xcscmblueprint | ||
*.xccheckout | ||
|
||
## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) | ||
build/ | ||
DerivedData/ | ||
*.moved-aside | ||
*.pbxuser | ||
!default.pbxuser | ||
*.mode1v3 | ||
!default.mode1v3 | ||
*.mode2v3 | ||
!default.mode2v3 | ||
*.perspectivev3 | ||
!default.perspectivev3 | ||
|
||
## Obj-C/Swift specific | ||
*.hmap | ||
|
||
## App packaging | ||
*.ipa | ||
*.dSYM.zip | ||
*.dSYM | ||
|
||
# CocoaPods | ||
# We recommend against adding the Pods directory to your .gitignore. However | ||
# you should judge for yourself, the pros and cons are mentioned at: | ||
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control | ||
# Pods/ | ||
# Add this line if you want to avoid checking in source code from the Xcode workspace | ||
# *.xcworkspace | ||
|
||
# Carthage | ||
# Add this line if you want to avoid checking in source code from Carthage dependencies. | ||
# Carthage/Checkouts | ||
|
||
Carthage/Build/ | ||
|
||
# fastlane | ||
# It is recommended to not store the screenshots in the git repo. | ||
# Instead, use fastlane to re-generate the screenshots whenever they are needed. | ||
# For more information about the recommended setup visit: | ||
# https://docs.fastlane.tools/best-practices/source-control/#source-control | ||
|
||
fastlane/report.xml | ||
fastlane/Preview.html | ||
fastlane/screenshots/**/*.png | ||
fastlane/test_output | ||
|
||
# Code Injection | ||
# After new code Injection tools there's a generated folder /iOSInjectionProject | ||
# https://github.com/johnno1962/injectionforxcode | ||
|
||
iOSInjectionProject/ | ||
|
||
### Objective-C Patch ### | ||
|
||
### Swift ### | ||
# Xcode | ||
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore | ||
|
||
|
||
|
||
|
||
|
||
|
||
## Playgrounds | ||
timeline.xctimeline | ||
playground.xcworkspace | ||
|
||
# Swift Package Manager | ||
# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. | ||
Packages/ | ||
Package.pins | ||
Package.resolved | ||
*.xcodeproj | ||
# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata | ||
# hence it is not needed unless you have added a package configuration file to your project | ||
# .swiftpm | ||
|
||
.build/ | ||
|
||
# CocoaPods | ||
# We recommend against adding the Pods directory to your .gitignore. However | ||
# you should judge for yourself, the pros and cons are mentioned at: | ||
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control | ||
# Pods/ | ||
# Add this line if you want to avoid checking in source code from the Xcode workspace | ||
*.xcworkspace | ||
|
||
# Carthage | ||
# Add this line if you want to avoid checking in source code from Carthage dependencies. | ||
# Carthage/Checkouts | ||
|
||
|
||
# Accio dependency management | ||
Dependencies/ | ||
.accio/ | ||
|
||
# fastlane | ||
# It is recommended to not store the screenshots in the git repo. | ||
# Instead, use fastlane to re-generate the screenshots whenever they are needed. | ||
# For more information about the recommended setup visit: | ||
# https://docs.fastlane.tools/best-practices/source-control/#source-control | ||
|
||
|
||
# Code Injection | ||
# After new code Injection tools there's a generated folder /iOSInjectionProject | ||
# https://github.com/johnno1962/injectionforxcode | ||
|
||
|
||
### SwiftPM ### | ||
Packages | ||
xcuserdata | ||
*.xcodeproj | ||
|
||
|
||
### Xcode ### | ||
|
||
## Xcode 8 and earlier | ||
|
||
### Xcode Patch ### | ||
*.xcodeproj/* | ||
!*.xcodeproj/project.pbxproj | ||
!*.xcodeproj/xcshareddata/ | ||
!*.xcodeproj/project.xcworkspace/ | ||
!*.xcworkspace/contents.xcworkspacedata | ||
/*.gcno | ||
**/xcshareddata/WorkspaceSettings.xcsettings | ||
|
||
# End of https://www.toptal.com/developers/gitignore/api/xcode,jetbrains,macos,direnv,swift,swiftpm,objective-c |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,142 @@ | ||
# Contributing to Coder Desktop | ||
|
||
Thank you for your interest in contributing to Coder Desktop! Below are the | ||
guidelines to help you get started. | ||
|
||
## Prerequisites | ||
|
||
Before opening the project in Xcode, you need to generate the Xcode project files. | ||
We use [**XcodeGen**](https://github.com/yonaskolb/XcodeGen) to handle this | ||
process, and the project generation is integrated into the `Makefile`. | ||
|
||
## Setting Up the Development Environment | ||
|
||
To ensure a consistent and reliable development environment, we recommend using | ||
[**Nix**](https://nix.dev/) with Flake support. All the tools required for | ||
development are defined in the `flake.nix` file. | ||
|
||
**Note:** Nix is the only supported development environment for this project. | ||
While setups outside of Nix may work, we do not support custom tool installations | ||
or address issues related to missing path setups or other tooling installation | ||
problems. Using Nix ensures consistency across development environments and avoids | ||
these potential issues. | ||
|
||
### Installing Nix with Flakes Enabled | ||
|
||
If you don’t already have Nix installed, you can: | ||
|
||
1. Use the [Determinate Systems installer](https://nixinstaller.com/) for a | ||
simple setup. | ||
2. Alternatively, use the [official installer](https://nixos.org/download.html) | ||
and enable Flake support by adding the following to your Nix configuration: | ||
|
||
```nix | ||
experimental-features = nix-command flakes | ||
``` | ||
|
||
This project does **not** support non-Flake versions of Nix. | ||
|
||
### Entering the Development Environment | ||
|
||
Run the following command to enter the development environment with all necessary | ||
tools: | ||
|
||
```bash | ||
nix develop | ||
``` | ||
|
||
### Using `direnv` for Environment Automation (Optional) | ||
|
||
As an optional recommendation, you can use [`direnv`](https://direnv.net/) to | ||
automatically load and unload the Nix development environment when you navigate | ||
to the project directory. After installing `direnv`, enable it for this project by: | ||
|
||
1. Adding the following line to your `.envrc` file in the project directory: | ||
|
||
```bash | ||
use flake | ||
``` | ||
|
||
2. Allowing the `.envrc` file by running: | ||
|
||
```bash | ||
direnv allow | ||
``` | ||
|
||
With `direnv`, the development environment will automatically be set up whenever | ||
you enter the project directory. This step is optional but can significantly | ||
streamline your workflow. | ||
|
||
## Generating the Xcode Project Files | ||
|
||
Once your development environment is set up, generate the Xcode project files by | ||
running: | ||
|
||
```bash | ||
make | ||
``` | ||
|
||
This will use **XcodeGen** to create the required Xcode project files. | ||
The configuration for the project is defined in `Coder Desktop/project.yml`. | ||
|
||
## Common Make Commands | ||
|
||
Here are some useful `make` commands for working with the project: | ||
|
||
- `make fmt`: Format Swift files using SwiftFormat. | ||
- `make lint`: Lint Swift files using SwiftLint. | ||
- `make test`: Run all tests using `xcodebuild`. | ||
- `make clean`: Clean the Xcode project. | ||
- `make proto`: Generate Swift files from protobufs. | ||
- `make help`: Display all available `make` commands with descriptions. | ||
|
||
For continuous development, you can also use: | ||
|
||
```bash | ||
make watch-gen | ||
``` | ||
|
||
This command watches for changes to `Coder Desktop/project.yml` and regenerates | ||
the Xcode project file as needed. | ||
|
||
## Testing and Formatting | ||
|
||
To maintain code quality, ensure you run the following before submitting any changes: | ||
|
||
1. **Format Swift files:** | ||
|
||
```bash | ||
make fmt | ||
``` | ||
|
||
2. **Lint Swift files:** | ||
|
||
```bash | ||
make lint | ||
``` | ||
|
||
3. **Run tests:** | ||
|
||
```bash | ||
make test | ||
``` | ||
|
||
## Contributing Workflow | ||
|
||
1. Fork the repository and create your feature branch: | ||
|
||
```bash | ||
git checkout -b feature/your-feature-name | ||
``` | ||
|
||
2. Make your changes and commit them with clear messages. | ||
3. Push your branch to your forked repository: | ||
|
||
```bash | ||
git push origin feature/your-feature-name | ||
``` | ||
|
||
4. Open a pull request to the main repository. | ||
|
||
Thank you for contributing! If you have any questions or need further assistance, | ||
feel free to open an issue. |
1,659 changes: 0 additions & 1,659 deletions
1,659
Coder Desktop/Coder Desktop.xcodeproj/project.pbxproj
This file was deleted.
Oops, something went wrong.
7 changes: 0 additions & 7 deletions
7
Coder Desktop/Coder Desktop.xcodeproj/project.xcworkspace/contents.xcworkspacedata
This file was deleted.
Oops, something went wrong.
68 changes: 0 additions & 68 deletions
68
...Desktop/Coder Desktop.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
This file was deleted.
Oops, something went wrong.
140 changes: 0 additions & 140 deletions
140
Coder Desktop/Coder Desktop.xcodeproj/xcshareddata/xcschemes/Coder Desktop.xcscheme
This file was deleted.
Oops, something went wrong.
67 changes: 0 additions & 67 deletions
67
Coder Desktop/Coder Desktop.xcodeproj/xcshareddata/xcschemes/VPN.xcscheme
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
import Foundation | ||
|
||
public struct HTTPResponse { | ||
let resp: HTTPURLResponse | ||
let data: Data | ||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,5 @@ | ||
@testable import CoderSDK | ||
import Foundation | ||
import Mocker | ||
import Testing | ||
|
||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,296 @@ | ||
name: "Coder Desktop" | ||
options: | ||
bundleIdPrefix: com.coder | ||
deploymentTarget: | ||
macOS: "14.6" | ||
xcodeVersion: "1600" | ||
minimumXcodeGenVersion: "2.42.0" | ||
|
||
settings: | ||
base: | ||
MARKETING_VERSION: "1.0" # Sets the version number. | ||
CURRENT_PROJECT_VERSION: "1" # Sets the build number. | ||
|
||
ALWAYS_SEARCH_USER_PATHS: NO | ||
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS: YES | ||
COPY_PHASE_STRIP: NO | ||
DEAD_CODE_STRIPPING: YES | ||
DEVELOPMENT_TEAM: "4399GN35BJ" | ||
GENERATE_INFOPLIST_FILE: YES | ||
PRODUCT_NAME: "$(TARGET_NAME)" | ||
SWIFT_VERSION: ${SWIFT_VERSION} | ||
ENABLE_USER_SCRIPT_SANDBOXING: YES | ||
LD_RUNPATH_SEARCH_PATHS: | ||
- "$(inherited)" | ||
- "@executable_path/../Frameworks" | ||
- "@loader_path/Frameworks" | ||
GCC_C_LANGUAGE_STANDARD: gnu17 | ||
CLANG_CXX_LANGUAGE_STANDARD: "gnu++20" | ||
CLANG_ENABLE_MODULES: YES | ||
CLANG_ENABLE_OBJC_ARC: YES | ||
CLANG_ENABLE_OBJC_WEAK: YES | ||
ENABLE_STRICT_OBJC_MSGSEND: YES | ||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING: YES | ||
CLANG_WARN_BOOL_CONVERSION: YES | ||
CLANG_WARN_COMMA: YES | ||
CLANG_WARN_CONSTANT_CONVERSION: YES | ||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS: YES | ||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE: YES_ERROR | ||
CLANG_WARN_DOCUMENTATION_COMMENTS: YES | ||
CLANG_WARN_EMPTY_BODY: YES | ||
CLANG_WARN_ENUM_CONVERSION: YES | ||
CLANG_WARN_INFINITE_RECURSION: YES | ||
CLANG_WARN_INT_CONVERSION: YES | ||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION: YES | ||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF: YES | ||
CLANG_WARN_OBJC_LITERAL_CONVERSION: YES | ||
CLANG_WARN_OBJC_ROOT_CLASS: YES_ERROR | ||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER: YES | ||
CLANG_WARN_RANGE_LOOP_ANALYSIS: YES | ||
CLANG_WARN_STRICT_PROTOTYPES: YES | ||
CLANG_WARN_SUSPICIOUS_MOVE: YES | ||
CLANG_WARN_UNGUARDED_AVAILABILITY: YES_AGGRESSIVE | ||
CLANG_WARN_UNREACHABLE_CODE: YES | ||
CLANG_WARN__DUPLICATE_METHOD_MATCH: YES | ||
GCC_WARN_64_TO_32_BIT_CONVERSION: YES | ||
GCC_WARN_ABOUT_RETURN_TYPE: YES_ERROR | ||
GCC_WARN_UNDECLARED_SELECTOR: YES | ||
GCC_WARN_UNINITIALIZED_AUTOS: YES_AGGRESSIVE | ||
GCC_WARN_UNUSED_FUNCTION: YES | ||
GCC_WARN_UNUSED_VARIABLE: YES | ||
GCC_NO_COMMON_BLOCKS: YES | ||
CLANG_ANALYZER_NONNULL: YES | ||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION: YES_AGGRESSIVE | ||
MTL_FAST_MATH: YES | ||
LOCALIZATION_PREFERS_STRING_CATALOGS: YES | ||
configs: | ||
debug: | ||
GCC_PREPROCESSOR_DEFINITIONS: | ||
- "DEBUG=1" | ||
- "$(inherited)" | ||
ONLY_ACTIVE_ARCH: YES | ||
SWIFT_ACTIVE_COMPILATION_CONDITIONS: "DEBUG $(inherited)" | ||
SWIFT_OPTIMIZATION_LEVEL: "-Onone" | ||
GCC_OPTIMIZATION_LEVEL: 0 | ||
DEBUG_INFORMATION_FORMAT: dwarf | ||
ENABLE_TESTABILITY: YES | ||
MTL_ENABLE_DEBUG_INFO: INCLUDE_SOURCE | ||
release: | ||
SWIFT_COMPILATION_MODE: wholemodule | ||
DEBUG_INFORMATION_FORMAT: "dwarf-with-dsym" | ||
ENABLE_NS_ASSERTIONS: NO | ||
MTL_ENABLE_DEBUG_INFO: NO | ||
|
||
packages: | ||
ViewInspector: | ||
url: https://github.com/nalexn/ViewInspector | ||
from: 0.10.0 | ||
SwiftLintPlugins: | ||
url: https://github.com/SimplyDanny/SwiftLintPlugins | ||
from: 0.57.1 | ||
FluidMenuBarExtra: | ||
url: https://github.com/lfroms/fluid-menu-bar-extra | ||
from: 1.1.0 | ||
KeychainAccess: | ||
url: https://github.com/kishikawakatsumi/KeychainAccess | ||
branch: e0c7eebc5a4465a3c4680764f26b7a61f567cdaf | ||
SwiftProtobuf: | ||
url: https://github.com/apple/swift-protobuf.git | ||
exactVersion: 1.28.2 | ||
Mocker: | ||
url: https://github.com/WeTransfer/Mocker | ||
from: 3.0.2 | ||
LaunchAtLogin: | ||
url: https://github.com/sindresorhus/LaunchAtLogin-modern | ||
from: 1.1.0 | ||
|
||
targets: | ||
Coder Desktop: | ||
type: application | ||
platform: macOS | ||
sources: | ||
- path: Coder Desktop | ||
entitlements: | ||
path: Coder Desktop/Coder_Desktop.entitlements | ||
properties: | ||
com.apple.developer.networking.networkextension: | ||
- packet-tunnel-provider | ||
com.apple.developer.system-extension.install: true | ||
com.apple.security.app-sandbox: true | ||
com.apple.security.files.user-selected.read-only: true | ||
com.apple.security.network.client: true | ||
settings: | ||
base: | ||
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon # Sets the app icon to "AppIcon". | ||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME: AccentColor | ||
CODE_SIGN_IDENTITY: "Apple Development" | ||
CODE_SIGN_STYLE: Automatic | ||
COMBINE_HIDPI_IMAGES: YES | ||
DEVELOPMENT_ASSET_PATHS: '"Coder Desktop/Preview Content"' # Adds development assets. | ||
ENABLE_HARDENED_RUNTIME: YES | ||
ENABLE_PREVIEWS: YES | ||
INFOPLIST_KEY_LSUIElement: YES | ||
INFOPLIST_KEY_NSHumanReadableCopyright: "" | ||
SWIFT_EMIT_LOC_STRINGS: YES | ||
PRODUCT_BUNDLE_IDENTIFIER: "com.coder.Coder-Desktop" | ||
|
||
# (ThomasK33): Install the application into the /Applications folder | ||
# so that macOS stops complaining about the app being run from an | ||
# untrusted folder. | ||
DEPLOYMENT_LOCATION: YES | ||
DSTROOT: $(LOCAL_APPS_DIR)/Coder | ||
INSTALL_PATH: / | ||
SKIP_INSTALL: NO | ||
dependencies: | ||
- target: CoderSDK | ||
embed: true | ||
- target: VPN | ||
embed: without-signing # Embed without signing. | ||
- package: FluidMenuBarExtra | ||
- package: KeychainAccess | ||
- package: LaunchAtLogin | ||
scheme: | ||
testPlans: | ||
- path: Coder Desktop.xctestplan | ||
testTargets: | ||
- Coder DesktopTests | ||
- Coder DesktopUITests | ||
buildToolPlugins: | ||
- plugin: SwiftLintBuildToolPlugin | ||
package: SwiftLintPlugins | ||
|
||
Coder DesktopTests: | ||
type: bundle.unit-test | ||
platform: macOS | ||
sources: | ||
- path: Coder DesktopTests | ||
settings: | ||
base: | ||
BUNDLE_LOADER: "$(TEST_HOST)" | ||
TEST_HOST: "$(BUILT_PRODUCTS_DIR)/Coder Desktop.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Coder Desktop" | ||
PRODUCT_BUNDLE_IDENTIFIER: "com.coder.Coder-DesktopTests" | ||
dependencies: | ||
- target: "Coder Desktop" | ||
- target: CoderSDK | ||
embed: false # Do not embed the framework. | ||
- package: ViewInspector | ||
- package: Mocker | ||
|
||
Coder DesktopUITests: | ||
type: bundle.ui-testing | ||
platform: macOS | ||
sources: | ||
- path: Coder DesktopUITests | ||
settings: | ||
base: | ||
PRODUCT_BUNDLE_IDENTIFIER: "com.coder.Coder-DesktopUITests" | ||
dependencies: | ||
- target: Coder Desktop | ||
|
||
VPN: | ||
type: system-extension | ||
platform: macOS | ||
sources: | ||
- path: VPN | ||
entitlements: | ||
path: VPN/VPN.entitlements | ||
properties: | ||
com.apple.developer.networking.networkextension: | ||
- packet-tunnel-provider | ||
com.apple.security.app-sandbox: true | ||
com.apple.security.application-groups: | ||
- $(TeamIdentifierPrefix)com.coder.Coder-Desktop | ||
com.apple.security.network.client: true | ||
ThomasK33 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
com.apple.security.network.server: true | ||
settings: | ||
base: | ||
ENABLE_HARDENED_RUNTIME: YES | ||
INFOPLIST_FILE: VPN/Info.plist | ||
PRODUCT_BUNDLE_IDENTIFIER: "com.coder.Coder-Desktop.VPN" | ||
PRODUCT_MODULE_NAME: "$(PRODUCT_NAME:c99extidentifier)" | ||
PRODUCT_NAME: "$(PRODUCT_BUNDLE_IDENTIFIER)" | ||
SWIFT_EMIT_LOC_STRINGS: YES | ||
SWIFT_OBJC_BRIDGING_HEADER: "VPN/com_coder_Coder_Desktop_VPN-Bridging-Header.h" | ||
dependencies: | ||
- target: VPNLib | ||
embed: true | ||
- target: CoderSDK | ||
embed: true | ||
- sdk: NetworkExtension.framework | ||
|
||
VPNLib: | ||
type: framework | ||
platform: macOS | ||
sources: | ||
- path: VPNLib | ||
settings: | ||
base: | ||
PRODUCT_NAME: "$(TARGET_NAME:c99extidentifier)" | ||
SWIFT_EMIT_LOC_STRINGS: YES | ||
PRODUCT_BUNDLE_IDENTIFIER: "com.coder.Coder-Desktop.VPNLib" | ||
DYLIB_COMPATIBILITY_VERSION: 1 | ||
DYLIB_CURRENT_VERSION: 1 | ||
DYLIB_INSTALL_NAME_BASE: "@rpath" | ||
CODE_SIGN_IDENTITY: "Apple Development" | ||
CODE_SIGN_STYLE: Automatic | ||
LD_RUNPATH_SEARCH_PATHS: | ||
- "@executable_path/../Frameworks" | ||
- "@loader_path/Frameworks" | ||
scheme: | ||
testTargets: | ||
- VPNLibTests | ||
dependencies: | ||
- package: SwiftProtobuf | ||
- package: SwiftProtobuf | ||
product: SwiftProtobufPluginLibrary | ||
- target: CoderSDK | ||
embed: false | ||
|
||
VPNLibTests: | ||
type: bundle.unit-test | ||
platform: macOS | ||
sources: | ||
- path: VPNLibTests | ||
settings: | ||
base: | ||
TEST_HOST: "$(BUILT_PRODUCTS_DIR)/Coder Desktop.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Coder Desktop" | ||
PRODUCT_BUNDLE_IDENTIFIER: "com.coder.Coder-Desktop.VPNLibTests" | ||
dependencies: | ||
- target: Coder Desktop | ||
- target: VPNLib | ||
embed: false | ||
- package: Mocker | ||
|
||
CoderSDK: | ||
type: framework | ||
platform: macOS | ||
sources: | ||
- path: CoderSDK | ||
settings: | ||
base: | ||
INFOPLIST_KEY_NSHumanReadableCopyright: "" | ||
PRODUCT_NAME: "$(TARGET_NAME:c99extidentifier)" | ||
SWIFT_EMIT_LOC_STRINGS: YES | ||
GENERATE_INFOPLIST_FILE: YES | ||
DYLIB_COMPATIBILITY_VERSION: 1 | ||
DYLIB_CURRENT_VERSION: 1 | ||
DYLIB_INSTALL_NAME_BASE: "@rpath" | ||
scheme: | ||
testTargets: | ||
- CoderSDKTests | ||
dependencies: [] | ||
|
||
CoderSDKTests: | ||
type: bundle.unit-test | ||
platform: macOS | ||
sources: | ||
- path: CoderSDKTests | ||
dependencies: | ||
- target: "Coder Desktop" | ||
- target: CoderSDK | ||
embed: false # Do not embed the framework. | ||
- package: Mocker | ||
settings: | ||
base: | ||
TEST_HOST: "$(BUILT_PRODUCTS_DIR)/Coder Desktop.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Coder Desktop" | ||
PRODUCT_BUNDLE_IDENTIFIER: com.coder.Coder-Desktop.CoderSDKTests |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
{ | ||
description = "Coder Desktop macOS"; | ||
|
||
inputs = { | ||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; | ||
flake-utils.url = "github:numtide/flake-utils"; | ||
}; | ||
|
||
outputs = | ||
{ | ||
self, | ||
nixpkgs, | ||
flake-utils, | ||
}: | ||
flake-utils.lib.eachSystem | ||
(with flake-utils.lib.system; [ | ||
aarch64-darwin | ||
x86_64-darwin | ||
]) | ||
( | ||
system: | ||
let | ||
pkgs = import nixpkgs { | ||
inherit system; | ||
}; | ||
|
||
formatter = pkgs.nixfmt-rfc-style; | ||
in | ||
{ | ||
inherit formatter; | ||
|
||
devShells.default = pkgs.mkShellNoCC { | ||
buildInputs = with pkgs; [ | ||
ethanndickson marked this conversation as resolved.
Show resolved
Hide resolved
|
||
apple-sdk_15 | ||
clang | ||
formatter | ||
gnumake | ||
protobuf_28 | ||
protoc-gen-swift | ||
swiftformat | ||
swiftlint | ||
watchexec | ||
xcodegen | ||
xcbeautify | ||
]; | ||
}; | ||
} | ||
); | ||
} |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.