biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / applications / misc / qcad / default.nix
blobf942607525fd4b216192fa9932a582a2c1fb8c65
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , installShellFiles
5 , pkg-config
6 , qmake
7 , qttools
8 , boost
9 , libGLU
10 , muparser
11 , qtbase
12 , qtscript
13 , qtsvg
14 , qtxmlpatterns
15 , qtmacextras
16 , wrapQtAppsHook
19 stdenv.mkDerivation rec {
20   pname = "qcad";
21   version = "3.31.1.2";
23   src = fetchFromGitHub {
24     name = "qcad-${version}-src";
25     owner = "qcad";
26     repo = "qcad";
27     rev = "v${version}";
28     hash = "sha256-lTe/XCW/qUARfIpcps1RMjubLiIR7cvYMZ0XgebaDrk=";
29   };
31   patches = [
32     # Patch directory lookup, remove __DATE__ and executable name
33     ./application-dir.patch
34   ];
36   postPatch = ''
37     if ! [ -d src/3rdparty/qt-labs-qtscriptgenerator-${qtbase.version} ]; then
38       mkdir src/3rdparty/qt-labs-qtscriptgenerator-${qtbase.version}
39       cp \
40         src/3rdparty/qt-labs-qtscriptgenerator-5.14.0/qt-labs-qtscriptgenerator-5.14.0.pro \
41         src/3rdparty/qt-labs-qtscriptgenerator-${qtbase.version}/qt-labs-qtscriptgenerator-${qtbase.version}.pro
42     fi
43   '';
45   nativeBuildInputs = [
46     installShellFiles
47     pkg-config
48     qmake
49     qttools
50     wrapQtAppsHook
51   ];
53   buildInputs = [
54     boost
55     libGLU
56     muparser
57     qtbase
58     qtscript
59     qtsvg
60     qtxmlpatterns
61   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
62     qtmacextras
63   ];
65   qmakeFlags = [
66     "MUPARSER_DIR=${muparser}"
67     "INSTALLROOT=$(out)"
68     "BOOST_DIR=${boost.dev}"
69     "QMAKE_CXXFLAGS=-std=c++14"
70   ];
72   qtWrapperArgs = lib.optionals stdenv.hostPlatform.isLinux [
73     "--prefix LD_LIBRARY_PATH : ${placeholder "out"}/lib"
74   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
75     "--prefix DYLD_LIBRARY_PATH : ${placeholder "out"}/lib"
76   ];
78   installPhase = ''
79     runHook preInstall
80   '' + lib.optionalString stdenv.hostPlatform.isLinux ''
81     install -Dm555 release/qcad-bin $out/bin/qcad
82   '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
83     install -Dm555 release/QCAD.app/Contents/MacOS/QCAD $out/bin/qcad
84     mkdir -p $out/lib
85   '' + ''
86     install -Dm555 -t $out/lib release/libspatialindexnavel${stdenv.hostPlatform.extensions.sharedLibrary}
87     install -Dm555 -t $out/lib release/libqcadcore${stdenv.hostPlatform.extensions.sharedLibrary}
88     install -Dm555 -t $out/lib release/libqcadentity${stdenv.hostPlatform.extensions.sharedLibrary}
89     install -Dm555 -t $out/lib release/libqcadgrid${stdenv.hostPlatform.extensions.sharedLibrary}
90     install -Dm555 -t $out/lib release/libqcadsnap${stdenv.hostPlatform.extensions.sharedLibrary}
91     install -Dm555 -t $out/lib release/libqcadoperations${stdenv.hostPlatform.extensions.sharedLibrary}
92     install -Dm555 -t $out/lib release/libqcadstemmer${stdenv.hostPlatform.extensions.sharedLibrary}
93     install -Dm555 -t $out/lib release/libqcadspatialindex${stdenv.hostPlatform.extensions.sharedLibrary}
94     install -Dm555 -t $out/lib release/libqcadgui${stdenv.hostPlatform.extensions.sharedLibrary}
95     install -Dm555 -t $out/lib release/libqcadecmaapi${stdenv.hostPlatform.extensions.sharedLibrary}
97     install -Dm444 -t $out/share/applications qcad.desktop
98     install -Dm644 -t $out/share/pixmaps      scripts/qcad_icon.png
100     cp -r scripts $out/lib
101     cp -r plugins $out/lib/plugins
102     cp -r patterns $out/lib/patterns
103     cp -r fonts $out/lib/fonts
104     cp -r libraries $out/lib/libraries
105     cp -r linetypes $out/lib/linetypes
106     cp -r ts $out/lib/ts
108     # workaround to fix the library browser:
109     rm -r $out/lib/plugins/sqldrivers
110     ln -s -t $out/lib/plugins ${qtbase}/${qtbase.qtPluginPrefix}/sqldrivers
112     rm -r $out/lib/plugins/printsupport
113     ln -s -t $out/lib/plugins ${qtbase}/${qtbase.qtPluginPrefix}/printsupport
115     rm -r $out/lib/plugins/imageformats
116     ln -s -t $out/lib/plugins ${qtbase}/${qtbase.qtPluginPrefix}/imageformats
118     install -Dm644 scripts/qcad_icon.svg $out/share/icons/hicolor/scalable/apps/qcad.svg
120     installManPage qcad.1
122     runHook postInstall
123   '';
125   meta = {
126     description = "2D CAD package based on Qt";
127     homepage = "https://qcad.org";
128     license = lib.licenses.gpl3Only;
129     mainProgram = "qcad";
130     maintainers = with lib.maintainers; [ yvesf ];
131     platforms = qtbase.meta.platforms;
132   };