diff --git a/pkgs/applications/science/electronics/kicad/base.nix b/pkgs/applications/science/electronics/kicad/base.nix index 1e1c3ca3bb86..2cd9703a03ea 100644 --- a/pkgs/applications/science/electronics/kicad/base.nix +++ b/pkgs/applications/science/electronics/kicad/base.nix @@ -68,7 +68,12 @@ assert testing -> !stable -> throw "testing implies stable and cannot be used wi let opencascade-occt = opencascade-occt_7_6; - inherit (lib) optionals optionalString; + inherit (lib) + cmakeBool + cmakeFeature + optionals + optionalString + ; in stdenv.mkDerivation rec { pname = "kicad-base"; @@ -100,34 +105,22 @@ stdenv.mkDerivation rec { ''; cmakeFlags = [ - "-DKICAD_USE_EGL=ON" - "-DOCC_INCLUDE_DIR=${opencascade-occt}/include/opencascade" + (cmakeBool "KICAD_USE_EGL" true) + (cmakeFeature "OCC_INCLUDE_DIR" "${opencascade-occt}/include/opencascade") # https://gitlab.com/kicad/code/kicad/-/issues/17133 - "-DCMAKE_CTEST_ARGUMENTS='--exclude-regex;qa_spice'" - "-DKICAD_USE_CMAKE_FINDPROTOBUF=OFF" + (cmakeFeature "CMAKE_CTEST_ARGUMENTS" "--exclude-regex;qa_spice") + (cmakeBool "KICAD_USE_CMAKE_FINDPROTOBUF" false) + (cmakeBool "KICAD_SCRIPTING_WXPYTHON" withScripting) + (cmakeBool "KICAD_BUILD_I18N" withI18n) + (cmakeBool "KICAD_BUILD_QA_TESTS" (!doInstallCheck)) + (cmakeBool "KICAD_STDLIB_DEBUG" debug) + (cmakeBool "KICAD_USE_VALGRIND" debug) + (cmakeBool "KICAD_SANITIZE_ADDRESS" sanitizeAddress) + (cmakeBool "KICAD_SANITIZE_THREADS" sanitizeThreads) + (cmakeBool "KICAD_SPICE" (!(stable && !withNgspice))) ] - ++ optionals (stdenv.hostPlatform.system == "aarch64-linux") [ - "-DCMAKE_CTEST_ARGUMENTS=--exclude-regex;'qa_spice|qa_cli'" - ] - ++ optionals (stable && !withNgspice) [ "-DKICAD_SPICE=OFF" ] - ++ optionals (!withScripting) [ - "-DKICAD_SCRIPTING_WXPYTHON=OFF" - ] - ++ optionals withI18n [ - "-DKICAD_BUILD_I18N=ON" - ] - ++ optionals (!doInstallCheck) [ - "-DKICAD_BUILD_QA_TESTS=OFF" - ] - ++ optionals debug [ - "-DKICAD_STDLIB_DEBUG=ON" - "-DKICAD_USE_VALGRIND=ON" - ] - ++ optionals sanitizeAddress [ - "-DKICAD_SANITIZE_ADDRESS=ON" - ] - ++ optionals sanitizeThreads [ - "-DKICAD_SANITIZE_THREADS=ON" + ++ optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [ + (cmakeFeature "CMAKE_CTEST_ARGUMENTS" "--exclude-regex;'qa_spice|qa_cli'") ]; cmakeBuildType = if debug then "Debug" else "Release";