mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 01:14:41 +00:00
This gives clear indication what modules are now deprecated and reduce clutter in non-deprecated module directories.
173 lines
4.6 KiB
Nim
173 lines
4.6 KiB
Nim
# Configuration file for the Nim Compiler.
|
|
# (c) 2015 Andreas Rumpf
|
|
|
|
# Feel free to edit the default values as you need.
|
|
|
|
# You may set environment variables with
|
|
# @putenv "key" "val"
|
|
# Environment variables can be accessed like so:
|
|
# gcc.path %= "$CC_PATH"
|
|
|
|
cc = gcc
|
|
|
|
# additional options always passed to the compiler:
|
|
--parallel_build: "0" # 0 to auto-detect number of processors
|
|
|
|
hint[LineTooLong]=off
|
|
#hint[XDeclaredButNotUsed]=off
|
|
|
|
# example of how to setup a cross-compiler:
|
|
arm.linux.gcc.exe = "arm-linux-gcc"
|
|
arm.linux.gcc.linkerexe = "arm-linux-gcc"
|
|
|
|
mips.linux.gcc.exe = "mips-openwrt-linux-gcc"
|
|
mips.linux.gcc.linkerexe = "mips-openwrt-linux-gcc"
|
|
|
|
@if not nimfix:
|
|
cs:partial
|
|
@end
|
|
|
|
path="$lib/deprecated/core"
|
|
path="$lib/deprecated/pure"
|
|
path="$lib/pure/collections"
|
|
path="$lib/pure/concurrency"
|
|
path="$lib/impure"
|
|
path="$lib/wrappers"
|
|
path="$lib/wrappers/linenoise"
|
|
path="$lib/windows"
|
|
path="$lib/posix"
|
|
path="$lib/js"
|
|
path="$lib/pure/unidecode"
|
|
path="$lib/arch"
|
|
path="$lib/core"
|
|
path="$lib/pure"
|
|
|
|
@if nimbabel:
|
|
nimblepath="$home/.nimble/pkgs/"
|
|
@end
|
|
|
|
@if release or quick:
|
|
obj_checks:off
|
|
field_checks:off
|
|
range_checks:off
|
|
bound_checks:off
|
|
overflow_checks:off
|
|
assertions:off
|
|
stacktrace:off
|
|
linetrace:off
|
|
debugger:off
|
|
line_dir:off
|
|
dead_code_elim:on
|
|
@end
|
|
|
|
@if release:
|
|
opt:speed
|
|
@end
|
|
|
|
@if unix:
|
|
@if not bsd:
|
|
# -fopenmp
|
|
gcc.options.linker = "-ldl"
|
|
gcc.cpp.options.linker = "-ldl"
|
|
clang.options.linker = "-ldl"
|
|
clang.cpp.options.linker = "-ldl"
|
|
tcc.options.linker = "-ldl"
|
|
@end
|
|
@if bsd or haiku:
|
|
# BSD got posix_spawn only recently, so we deactivate it for osproc:
|
|
define:useFork
|
|
# at least NetBSD has problems with thread local storage:
|
|
tlsEmulation:on
|
|
@end
|
|
@end
|
|
|
|
# Configuration for the Intel C/C++ compiler:
|
|
@if windows:
|
|
icl.options.speed = "/Ox /arch:SSE2"
|
|
icl.options.always = "/nologo"
|
|
@end
|
|
|
|
# Configuration for the GNU C/C++ compiler:
|
|
@if windows:
|
|
#gcc.path = r"$nim\dist\mingw\bin"
|
|
@if gcc:
|
|
tlsEmulation:on
|
|
@end
|
|
@end
|
|
|
|
@if macosx or freebsd:
|
|
cc = clang
|
|
tlsEmulation:on
|
|
gcc.options.always = "-w"
|
|
gcc.cpp.options.always = "-w -fpermissive"
|
|
@else:
|
|
gcc.options.always = "-w"
|
|
gcc.cpp.options.always = "-w -fpermissive"
|
|
@end
|
|
|
|
# Configuration for Objective-C compiler:
|
|
#
|
|
# Options for GNUStep. GNUStep configuration varies wildly, so you'll probably
|
|
# have to add additional compiler and linker flags on a per-project basis.
|
|
gcc.objc.options.linker = "-lobjc -lgnustep-base"
|
|
llvm_gcc.objc.options.linker = "-lobjc -lgnustep-base"
|
|
clang.objc.options.linker = "-lobjc -lgnustep-base"
|
|
|
|
# Options for Mac OS X. Mac OS X uses its own Objective-C stack that is
|
|
# totally different from GNUStep.
|
|
@if macosx:
|
|
gcc.objc.options.linker = "-framework Foundation"
|
|
llvm_gcc.objc.options.linker = "-framework Foundation"
|
|
clang.objc.options.linker = "-framework Foundation"
|
|
@end
|
|
|
|
# Configuration for the VxWorks
|
|
# This has been tested with VxWorks 6.9 only
|
|
@if vxworks:
|
|
# For now we only support compiling RTPs applications (i.e. no DKMs)
|
|
gcc.options.always = "-mrtp -fno-strict-aliasing -D_C99 -D_HAS_C9X -std=c99 -fasm -Wall -Wno-write-strings"
|
|
# The linker config must add the VxWorks common library for the selected
|
|
# processor which is usually found in:
|
|
# "$WIND_BASE/target/lib/usr/lib/PROCESSOR_FAMILY/PROCESSOR_TYPE/common",
|
|
# where PROCESSOR_FAMILY and PROCESSOR_TYPE are those supported by the VxWorks
|
|
# compiler (e.g. ppc/PPC32 or mips/MIPSI64, etc)
|
|
# For now we only support the PowerPC CPU
|
|
gcc.options.linker %= "-L $WIND_BASE/target/lib/usr/lib/ppc/PPC32/common -mrtp -fno-strict-aliasing -D_C99 -D_HAS_C9X -std=c99 -fasm -Wall -Wno-write-strings"
|
|
@end
|
|
|
|
gcc.options.speed = "-O3 -fno-strict-aliasing"
|
|
gcc.options.size = "-Os"
|
|
gcc.options.debug = "-g3 -O0"
|
|
|
|
gcc.cpp.options.speed = "-O3 -fno-strict-aliasing"
|
|
gcc.cpp.options.size = "-Os"
|
|
gcc.cpp.options.debug = "-g3 -O0"
|
|
#passl = "-pg"
|
|
|
|
# Configuration for the LLVM GCC compiler:
|
|
llvm_gcc.options.debug = "-g"
|
|
llvm_gcc.options.always = "-w"
|
|
llvm_gcc.options.speed = "-O2"
|
|
llvm_gcc.options.size = "-Os"
|
|
|
|
# Configuration for the LLVM CLang compiler:
|
|
clang.options.debug = "-g"
|
|
clang.options.always = "-w"
|
|
clang.options.speed = "-O3"
|
|
clang.options.size = "-Os"
|
|
|
|
# Configuration for the Visual C/C++ compiler:
|
|
vcc.options.linker = "/DEBUG /Zi /Fd\"$projectName.pdb\" /F33554432" # set the stack size to 8 MB
|
|
vcc.options.debug = "/Zi /Fd\"$projectName.pdb\""
|
|
vcc.options.always = "/nologo"
|
|
vcc.options.speed = "/O2 /arch:SSE2"
|
|
vcc.options.size = "/O1"
|
|
|
|
# Configuration for the Digital Mars C/C++ compiler:
|
|
@if windows:
|
|
dmc.path = r"$nimrod\dist\dm\bin"
|
|
@end
|
|
|
|
# Configuration for the Tiny C Compiler:
|
|
tcc.options.always = "-w"
|