diff options
-rw-r--r-- | compiler/options.nim | 8 | ||||
-rw-r--r-- | compiler/platform.nim | 6 | ||||
-rw-r--r-- | doc/nimc.rst | 7 |
3 files changed, 17 insertions, 4 deletions
diff --git a/compiler/options.nim b/compiler/options.nim index 5c7513f6b..3a705ff8b 100644 --- a/compiler/options.nim +++ b/compiler/options.nim @@ -397,7 +397,7 @@ proc isDefined*(conf: ConfigRef; symbol: string): bool = result = conf.target.targetOS in {osLinux, osMorphos, osSkyos, osIrix, osPalmos, osQnx, osAtari, osAix, osHaiku, osVxWorks, osSolaris, osNetbsd, - osFreebsd, osOpenbsd, osDragonfly, osMacosx, + osFreebsd, osOpenbsd, osDragonfly, osMacosx, osIos, osAndroid, osNintendoSwitch} of "linux": result = conf.target.targetOS in {osLinux, osAndroid} @@ -407,8 +407,10 @@ proc isDefined*(conf: ConfigRef; symbol: string): bool = result = platform.OS[conf.target.targetOS].props.contains(ospLacksThreadVars) of "msdos": result = conf.target.targetOS == osDos of "mswindows", "win32": result = conf.target.targetOS == osWindows - of "macintosh": result = conf.target.targetOS in {osMacos, osMacosx} - of "osx": result = conf.target.targetOS == osMacosx + of "macintosh": + result = conf.target.targetOS in {osMacos, osMacosx, osIos} + of "osx": + result = conf.target.targetOS in {osMacosx, osIos} of "sunos": result = conf.target.targetOS == osSolaris of "nintendoswitch": result = conf.target.targetOS == osNintendoSwitch diff --git a/compiler/platform.nim b/compiler/platform.nim index 64e37961e..cfe3e1f48 100644 --- a/compiler/platform.nim +++ b/compiler/platform.nim @@ -21,7 +21,7 @@ type # conditionals to condsyms (end of module). osNone, osDos, osWindows, osOs2, osLinux, osMorphos, osSkyos, osSolaris, osIrix, osNetbsd, osFreebsd, osOpenbsd, osDragonfly, osAix, osPalmos, osQnx, - osAmiga, osAtari, osNetware, osMacos, osMacosx, osHaiku, osAndroid, osVxWorks + osAmiga, osAtari, osNetware, osMacos, osMacosx, osIos, osHaiku, osAndroid, osVxWorks osGenode, osJS, osNimVM, osStandalone, osNintendoSwitch type @@ -139,6 +139,10 @@ const objExt: ".o", newLine: "\x0A", pathSep: ":", dirSep: "/", scriptExt: ".sh", curDir: ".", exeExt: "", extSep: ".", props: {ospNeedsPIC, ospPosix, ospLacksThreadVars}), + (name: "iOS", parDir: "..", dllFrmt: "lib$1.so", altDirSep: "/", + objExt: ".o", newLine: "\x0A", pathSep: ":", dirSep: "/", + scriptExt: ".sh", curDir: ".", exeExt: "", extSep: ".", + props: {ospNeedsPIC, ospPosix}), (name: "Haiku", parDir: "..", dllFrmt: "lib$1.so", altDirSep: ":", objExt: ".o", newLine: "\x0A", pathSep: ":", dirSep: "/", scriptExt: ".sh", curDir: ".", exeExt: "", extSep: ".", diff --git a/doc/nimc.rst b/doc/nimc.rst index 2bec61fd9..be2cc5c1a 100644 --- a/doc/nimc.rst +++ b/doc/nimc.rst @@ -295,6 +295,13 @@ Android apps are written in Java, to use Nim inside an Android app you need a sm Use ``nim c -c --cpu:arm --os:android -d:androidNDK`` to generate the C source files you need to include in your Android Studio project. Add the generated C files to CMake build script. Then do the final compile with Android Studio which uses gradle to call CMake to compile the project. +Cross compilation for iOS +========================= + +To cross compile for iOS you need to be on a MacOS computer use XCode. Normal languages for iOS development is Swift or Objective C. Both of these use llvm and can be compiled into object files linked together with C, C++ or Objective C code produced by Nim. + +Use ``nim c -c --os:ios`` to generate C files and include them in your XCode project. Then you can use XCode to compile, link, package and code sign everything. + Cross compilation for Nintendo Switch ===================================== |