Skip to content

Latest commit

 

History

History
164 lines (109 loc) · 5.07 KB

local-dev.md

File metadata and controls

164 lines (109 loc) · 5.07 KB

Idiomas: English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Français | Deutsch | Español | Italiano | Русский | العربية

← Índice de documentación

Desarrollo local

Guía para compilar NeverC desde el código fuente y configurar un entorno de desarrollo local.


Requisitos previos

  • CMake 3.20+
  • Ninja
  • Un compilador C++17 del host (GCC, Clang o MSVC)

Compilación

cmake -S llvm -B build-neverc -G Ninja -C neverc/cmake/caches/NeverC.cmake
cmake --build build-neverc --target neverc

ccache / sccache se detecta y activa automáticamente si está presente.

--target neverc es la compilación diaria stage-1 (runtimes embebidos vacíos) y basta para la mayoría del trabajo local. Si necesita string / mimalloc / std / NVK dentro del binario (o un compilador alineado con CI), ejecute el objetivo paraguas stage-2:

cmake --build build-neverc --target neverc-embed-runtime-bitcode

El bootstrap en dos etapas se detalla en Builtins.

Compilación con pruebas

cmake -S llvm -B build-neverc -G Ninja -C neverc/cmake/caches/NeverC.cmake -DNEVERC_INCLUDE_TESTS=ON
cmake --build build-neverc --target check-neverc

check-neverc depende de neverc-embed-runtime-bitcode, así que la primera ejecución de pruebas hace bootstrap y reenlace automáticamente. No hace falta invocar el objetivo embed a mano.


Configuración del PATH (macOS / Linux)

Tras la compilación, el binario neverc se encuentra en build-neverc/bin/neverc. Use el script auxiliar para añadirlo al PATH sin tener que escribir la ruta completa cada vez:

source ./utils/build/neverc-env.sh

Ahora puede ejecutar neverc directamente:

neverc --version
neverc -c hello.c -o hello.o

Eliminar del PATH

Para retirar la compilación local del PATH en la sesión de shell actual:

source ./utils/build/neverc-env.sh --remove   # o -r

Configuración permanente

Escribir automáticamente la línea source en el archivo rc del shell (~/.zshrc, ~/.bashrc o ~/.profile):

source ./utils/build/neverc-env.sh --install

Deshacer:

source ./utils/build/neverc-env.sh --uninstall

Cambiar entre desarrollo local y release

Si tiene instalada una release (por defecto: ~/.neverc) y también una compilación en el árbol de fuentes, use neverc-env.sh para cambiar el neverc activo en la sesión actual sin sobrescribir ninguna instalación:

source ./utils/build/neverc-env.sh              # desarrollo local (build-neverc/bin)
source ./utils/build/neverc-env.sh --local      # igual que arriba
source ./utils/build/neverc-env.sh --release    # release (~/.neverc/bin)
source ./utils/build/neverc-env.sh --status     # mostrar neverc activo
source ./utils/build/neverc-env.sh --remove     # quitar ambos del PATH

Al cambiar se establece NEVERC_ENV en local o release:

echo "$NEVERC_ENV"
neverc --version
which neverc

Si la release se instaló en otro prefijo, indique el mismo directorio que usa install.sh:

NEVERC_INSTALL_DIR=$HOME/.neverc-v3389.1.2 source ./utils/build/neverc-env.sh --release

Opcional — alias en la configuración del shell (sustituya la ruta por la absoluta de su repositorio):

alias neverc-dev='source /path/to/NeverC/utils/build/neverc-env.sh --local'
alias neverc-rel='source /path/to/NeverC/utils/build/neverc-env.sh --release'

Windows (CMD)

En Windows, utilice el script .bat (no requiere privilegios de administrador):

utils\build\neverc-env.bat             &REM añadir al PATH (sesión actual)
utils\build\neverc-env.bat --remove    &REM eliminar del PATH (sesión actual)
utils\build\neverc-env.bat --global    &REM persistir en el PATH de usuario vía setx
utils\build\neverc-env.bat --global -r &REM eliminar del PATH de usuario vía setx

A diferencia del script Unix, no se necesita source — el .bat modifica directamente la sesión cmd actual. --global escribe en el registro de usuario mediante setx (no requiere privilegios de administrador).


Binarios macOS precompilados

La versión está firmada con un certificado Apple Developer ID y notarizada por Apple. Extraiga el archivo y úselo directamente.


Compilación cruzada a Windows

NeverC incluye los SDK de cada plataforma en runtime/ (Windows SDK/WDK, sysroot de Linux, sysroot de macOS, Android NDK); no se necesita configuración externa.

neverc --target=x86_64-pc-windows-msvc \
  -fbuiltin-string -o hello.exe hello.c -lkernel32

Para dyncode de Windows (-fdyncode, resolución de importaciones PEB, etc.), consulte la documentación del compilador dyncode.


Verificación

neverc --version
echo 'int main(void) { return 0; }' > /tmp/hello.c
neverc -c /tmp/hello.c -o /tmp/hello.o