summary refs log tree commit diff
path: root/pkgs/development/tools/build-managers/cmake/setup-hook.sh
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/build-managers/cmake/setup-hook.sh')
-rwxr-xr-xpkgs/development/tools/build-managers/cmake/setup-hook.sh54
1 files changed, 54 insertions, 0 deletions
diff --git a/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/pkgs/development/tools/build-managers/cmake/setup-hook.sh
new file mode 100755
index 000000000000..8765599d67d7
--- /dev/null
+++ b/pkgs/development/tools/build-managers/cmake/setup-hook.sh
@@ -0,0 +1,54 @@
+addCMakeParamsInclude()
+{
+	if [ -d $1/include ]; then
+		export CMAKE_INCLUDE_PATH="${CMAKE_INCLUDE_PATH}${CMAKE_INCLUDE_PATH:+:}$1/include"
+	fi
+}
+
+addCMakeParamsLibs()
+{
+	if [ -d $1/lib ]; then
+		export CMAKE_LIBRARY_PATH="${CMAKE_LIBRARY_PATH}${CMAKE_LIBRARY_PATH:+:}$1/lib"
+	fi
+}
+
+fixCmake()
+{
+	echo "fixing Cmake file $i"
+	sed -e 's@/usr@/FOO@g' -e 's@ /\(bin\|sbin\|lib\)@ /FOO@g' -i $i
+}
+
+fixCmakeFiles()
+{
+	for i in $(find $1 -type f -name "*.cmake"); do
+		fixCmake $i;
+	done;
+}
+
+cmakePostUnpack()
+{
+	sourceRoot=$sourceRoot/build
+	mkdir -v $sourceRoot
+	echo source root reset to $sourceRoot
+
+	if [ -z "$dontFixCmake" ]; then
+		fixCmakeFiles .
+	fi
+}
+
+cmakeTweaks()
+{
+	postUnpack="cmakePostUnpack${postUnpack:+; }${postUnpack}"
+	
+	if [ -z "$configureScript" ]; then
+		dontAddPrefix=1
+		configureScript="cmake .."
+		configureFlags="-DCMAKE_INSTALL_PREFIX=$out $configureFlags"
+	fi
+}
+
+if [ -z "$noCmakeTewaks" ]; then
+	cmakeTweaks
+fi;
+
+envHooks=(${envHooks[@]} addCMakeParamsInclude addCMakeParamsLibs)