Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,6 @@ CI runs on Windows and Ubuntu. See .github/workflows/ci-cd.yml:

Always mirror this sequence when validating a change locally.

Use `dotnet build -m:1` for a cold-start build (a tree with no generated sources yet).
Parallel builds race on the generated sources and fail with `LcmGenerate` or `IdlImp`
errors. Plain `dotnet build` is fine once those sources exist.

### Tests per README (not validated here)
- Windows, ReSharper: open LCM.sln and “Run Unit Tests”.
- Windows, no ReSharper: use MSBuild, then run nunit3-console.exe from artifacts/Debug/net462.
Expand Down
10 changes: 3 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,22 +29,18 @@ with language and culture data, including anthropological, text corpus, and ling

On Windows:

- Run `dotnet build -m:1` to build the liblcm library. Alternatively, `LCM.sln` can be
- Run `dotnet build` to build the liblcm library. Alternatively, `LCM.sln` can be
built from within Visual Studio.

On Linux:

- Source `environ`, then run `dotnet build -m:1` to build the liblcm library.

Use `-m:1` for a cold-start build (a fresh clone or worktree, with no generated sources
yet). Parallel builds race on the generated sources. Plain `dotnet build` is fine once
those sources exist.
- Source `environ`, then run `dotnet build` to build the liblcm library.

By default, this will build liblcm in the Debug configuration.
To build with a different configuration, use:

```bash
dotnet build -m:1 --configuration (Debug|Release)
dotnet build --configuration (Debug|Release)
```

## Debugging
Expand Down
4 changes: 3 additions & 1 deletion src/SIL.LCModel.Core/GenerateKernelCs.proj
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@

<UsingNamespaces Include="SIL.LCModel.Utils" />
</ItemGroup>
<Target Name="GenerateKernelCs" Inputs="@(KernelIdhFiles)" Outputs="$(OutDir)KernelInterfaces/FwKernelTlb.json">
<!-- No Inputs/Outputs: the parent GenerateKernelCs target already decides when to run.
Skipping here when FwKernelTlb.json exists leaves Kernel.cs missing after a clean of generated sources. -->
<Target Name="GenerateKernelCs">
<Exec Command="$(PreprocessCommand) $(KernelIdl) > $(PreprocessedKernelIdl)" />
<IdlImp Output="KernelInterfaces/Kernel.cs"
Namespace="SIL.LCModel.Core.KernelInterfaces"
Expand Down
2 changes: 2 additions & 0 deletions src/SIL.LCModel.Core/SIL.LCModel.Core.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
<Description>The liblcm library is the core FieldWorks model for linguistic analyses of languages. Tools in this library provide the ability to store and interact with language and culture data, including anthropological, text corpus, and linguistics data.
SIL.LCModel.Core provides a base library with core functionality.</Description>
<LangVersion>latest</LangVersion>
<!-- Inner TFMs share Kernel.cs in the project tree; parallel inner builds race on IdlImp. -->
<InnerBuildInParallel>false</InnerBuildInParallel>
</PropertyGroup>

<ItemGroup>
Expand Down
2 changes: 2 additions & 0 deletions src/SIL.LCModel/SIL.LCModel.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
<Description>The liblcm library is the core FieldWorks model for linguistic analyses of languages. Tools in this library provide the ability to store and interact with language and culture data, including anthropological, text corpus, and linguistics data.
SIL.LCModel is the main library.</Description>
<Product>liblcm</Product>
<!-- Inner TFMs share Generated*.cs in the project tree; parallel inner builds race on LcmGenerate. -->
<InnerBuildInParallel>false</InnerBuildInParallel>
</PropertyGroup>

<ItemGroup>
Expand Down
Loading