Importing libraries via thirdparty makes libjxl impossible to build on Windows
envgap__libjxl__libjxl-1197
01 / FAILURE SIGNATURE
As reported upstream
[build] LINK : fatal error LNK1104: no se puede abrir el archivo 'gflags.lib' [E:\libjxl\build\tools\cjxl_ng.vcxproj]
Not a benchmark task.
- In a clean container the reported failure did not reproduce, or the known fix did not make the project run.
02 / ENVIRONMENT RECIPE
- Base commit
e6264cd6a1dc1caa46cca6465787ad94f0af0ee6- Manifest
third_party/CMakeLists.txt- Reproduce
Awaiting issue-specific recipe- Run under trace
Awaiting a meaningful runtime command
03 / ORIGINAL ISSUE TEXT
libjxl/libjxl #1197 · read the original issue
**Describe the bug**
I cannot build libjxl from scratch on Windows due to [CMake issue 22919](https://gitlab.kitware.com/cmake/cmake/-/issues/22919). This affects specifically the gflags dependency; since libjxl imports libraries in a sibling directory to `tools`, `gflags`'s location cannot be seen at link time:
(excerpt of `build\tools\cjxl_ng.vcxproj)
```xml
<Link>
<AdditionalDependencies>..\lib\MinSizeRel\jxl.lib;gflags.lib;box\MinSizeRel\box.lib;..\lib\MinSizeRel\jxl-static.lib;..\lib\MinSizeRel\jxl_extras-static.lib;..\lib\MinSizeRel\jxl_threads-static.lib;MinSizeRel\jxl_tool.lib;..\lib\MinSizeRel\jxl_extras_dec-static.lib;E:\krita-win\i_deps_msvc\lib\gif.lib;E:\krita-win\i_deps_msvc\lib\jpeg.lib;E:\krita-win\i_deps_msvc\lib\libpng16.lib;E:\krita-win\i_deps_msvc\lib\zlib.lib;..\lib\MinSizeRel\jxl-static.lib;E:\krita-win\i_deps_msvc\lib\brotlidec.lib;E:\krita-win\i_deps_msvc\lib\brotlicommon.lib;E:\krita-win\i_deps_msvc\lib\hwy.lib;E:\krita-win\i_deps_msvc\lib\brotlienc.lib;E:\krita-win\i_deps_msvc\lib\lcms2.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>
```
(excerpt of build log):
```
[build] LINK : fatal error LNK1104: no se puede abrir el archivo 'gflags.lib' [E:\libjxl\build\tools\cjxl_ng.vcxproj]
```
**To Reproduce**
Build and install all dependencies separately: brotli gflags giflib highway jpeg lcms2 openexr png
Then configure and build libjxl with e.g.:
```json
{
"cmake.configureSettings": {
"CMAKE_PREFIX_PATH": "E:/krita-win/i_deps_msvc",
"JPEGXL_VERSION": "0.6.1",
"BUILD_TESTING": false,
"JPEGXL_ENABLE_BENCHMARK": false,
"JPEGXL_ENABLE_COVERAGE": false,
"JPEGXL_ENABLE_EXAMPLES": false,
"JPEGXL_ENABLE_FUZZERS": false,
"JPEGXL_ENABLE_JNI": false,
"JPEGXL_ENABLE_SJPEG": false,
"JPEGXL_ENABLE_SKCMS": false,
"JPEGXL_ENABLE_VIEWERS": false
},
}
```
**Expected behavior**
The library is correctly built and installed.
**Screenshots**
N/A
**Environment**
- OS: [e.g. Windows]: Windows 10 20H2
- Compiler version: [e.g. clang 11.0.1] MSVC 19.29.30140
- CPU type: [e.g. x86_64] x86_64
- cjxl/djxl version string: [e.g. cjxl [v0.3.7 | SIMD supported: SSE4,Scalar]] commit ea6a190cd777b61662bd0470db24163a1a63bdab
**Additional context**
N/A
04 / LABELS
Labels from the report text only; not yet run
No supported category has been assigned.
Label rules and the text that matched
[]