summaryrefslogtreecommitdiffstats
path: root/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'default.nix')
-rw-r--r--default.nix101
1 files changed, 44 insertions, 57 deletions
diff --git a/default.nix b/default.nix
index a9095ef..6b30e6f 100644
--- a/default.nix
+++ b/default.nix
@@ -44,7 +44,7 @@ let
44 pkgs = import nixpkgs {}; 44 pkgs = import nixpkgs {};
45 stdenv = pkgs.overrideCC pkgs.stdenv pkgs.${compiler}; 45 stdenv = pkgs.overrideCC pkgs.stdenv pkgs.${compiler};
46 46
47in rec { 47 repo = rec {
48 kasync = stdenv.mkDerivation { 48 kasync = stdenv.mkDerivation {
49 name = "kasync"; 49 name = "kasync";
50 nativeBuildInputs = with pkgs; [ cmake ninja ccache ]; 50 nativeBuildInputs = with pkgs; [ cmake ninja ccache ];
@@ -90,12 +90,7 @@ in rec {
90 kasync kimap2 kdav2 90 kasync kimap2 kdav2
91 ]; 91 ];
92 92
93 cmakeFlags = [ 93 postInstall = pkgs.lib.optionalString (cmakeBuildType == "Debug") ''
94 "-DCMAKE_CXX_FLAGS=-fdiagnostics-color=always"
95 "-DCMAKE_EXPORT_COMPILE_COMMANDS=1"
96 ];
97
98 postInstall = ''
99 mkdir -p $out/tests 94 mkdir -p $out/tests
100 mkdir -p $out/bin 95 mkdir -p $out/bin
101 cp ./tests/clientapitest ./tests/resourceconfigtest ./tests/storagetest ./tests/domainadaptortest ./tests/messagequeuetest ./tests/indextest ./tests/resourcecommunicationtest ./tests/pipelinetest ./tests/querytest ./tests/modelinteractivitytest ./tests/inspectiontest ./tests/accountstest ./tests/testaccounttest ./tests/dummyresourcemailtest ./tests/interresourcemovetest ./tests/notificationtest ./tests/entitystoretest ./tests/upgradetest ./tests/resourcecontroltest ./tests/dummyresourcetest $out/tests 96 cp ./tests/clientapitest ./tests/resourceconfigtest ./tests/storagetest ./tests/domainadaptortest ./tests/messagequeuetest ./tests/indextest ./tests/resourcecommunicationtest ./tests/pipelinetest ./tests/querytest ./tests/modelinteractivitytest ./tests/inspectiontest ./tests/accountstest ./tests/testaccounttest ./tests/dummyresourcemailtest ./tests/interresourcemovetest ./tests/notificationtest ./tests/entitystoretest ./tests/upgradetest ./tests/resourcecontroltest ./tests/dummyresourcetest $out/tests
@@ -107,45 +102,6 @@ in rec {
107 inherit cmakeBuildType; 102 inherit cmakeBuildType;
108 }; 103 };
109 104
110 sinkTest = pkgs.runCommand "sinkTest"
111 {
112 buildInputs = [ sink pkgs.qt5.qtbase pkgs.xvfb_run ];
113 realTests = pkgs.writeScript "sinkRealTests" ''
114 sinksh selftest &&
115 clientapitest &&
116 resourceconfigtest &&
117 storagetest &&
118 domainadaptortest &&
119 messagequeuetest &&
120 indextest &&
121 resourcecommunicationtest &&
122 pipelinetest &&
123 querytest &&
124 modelinteractivitytest &&
125 inspectiontest &&
126 accountstest &&
127 testaccounttest &&
128 dummyresourcemailtest &&
129 interresourcemovetest &&
130 notificationtest &&
131 entitystoretest &&
132 upgradetest &&
133 dummyresourcetest
134 '';
135 }
136 ''
137 export HOME="$(mktemp -d)"
138 export QT_PLUGIN_PATH=${sink}/lib/qt-5.10/plugins/:${pkgs.qt5.qtbase}/lib/qt-5.10/plugins/:$QT_PLUGIN_PATH
139 export LD_LIBRARY_PATH=${sink}/lib/qt-5.10/plugins/sink/resources:$LD_LIBRARY_PATH
140 export PATH=${sink}/tests:${sink}/bin:$PATH
141 cd "$HOME"
142 xvfb-run "$realTests"
143 ret=$?
144 rm -rf $HOME
145 touch $out
146 return $ret
147 '';
148
149 kube = stdenv.mkDerivation { 105 kube = stdenv.mkDerivation {
150 name = "kube"; 106 name = "kube";
151 nativeBuildInputs = with pkgs; [ cmake ninja ccache ]; 107 nativeBuildInputs = with pkgs; [ cmake ninja ccache ];
@@ -157,20 +113,51 @@ in rec {
157 sink kasync 113 sink kasync
158 ]; 114 ];
159 115
160 CCACHE_COMPRESS = 1;
161 CCACHE_DIR = "/var/cache/ccache";
162 CCACHE_UMASK = "007";
163
164 cmakeFlags = [
165 #"-DCMAKE_CXX_COMPILER_LAUNCHER=${pkgs.ccache}/bin/ccache"
166 "-DCMAKE_CXX_FLAGS=-fdiagnostics-color=always"
167 "-DCMAKE_EXPORT_COMPILE_COMMANDS=1"
168 ];
169
170 dontStrip = if (cmakeBuildType == "Debug") then 1 else 0; 116 dontStrip = if (cmakeBuildType == "Debug") then 1 else 0;
171 117
172 src = kubeSrc; 118 src = kubeSrc;
173 119
174 inherit cmakeBuildType; 120 inherit cmakeBuildType;
175 }; 121 };
176} 122 };
123
124 sinkTest = pkgs.runCommand "sinkTest"
125 {
126 buildInputs = [ repo.sink pkgs.qt5.qtbase pkgs.xvfb_run ];
127 realTests = pkgs.writeScript "sinkRealTests" ''
128 sinksh selftest &&
129 clientapitest &&
130 resourceconfigtest &&
131 storagetest &&
132 domainadaptortest &&
133 messagequeuetest &&
134 indextest &&
135 resourcecommunicationtest &&
136 pipelinetest &&
137 querytest &&
138 modelinteractivitytest &&
139 inspectiontest &&
140 accountstest &&
141 testaccounttest &&
142 dummyresourcemailtest &&
143 interresourcemovetest &&
144 notificationtest &&
145 entitystoretest &&
146 upgradetest &&
147 dummyresourcetest
148 '';
149 }
150 ''
151 export HOME="$(mktemp -d)"
152 export QT_PLUGIN_PATH=${repo.sink}/lib/qt-5.10/plugins/:${pkgs.qt5.qtbase}/lib/qt-5.10/plugins/:$QT_PLUGIN_PATH
153 export LD_LIBRARY_PATH=${repo.sink}/lib/qt-5.10/plugins/sink/resources:$LD_LIBRARY_PATH
154 export PATH=${repo.sink}/tests:${repo.sink}/bin:$PATH
155 cd "$HOME"
156 xvfb-run "$realTests"
157 ret=$?
158 rm -rf $HOME
159 touch $out
160 return $ret
161 '';
162
163in repo // (if (cmakeBuildType == "Debug") then {inherit sinkTest;} else {})