summaryrefslogtreecommitdiffstats
path: root/src/cmake-conf.mk
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmake-conf.mk')
-rw-r--r--src/cmake-conf.mk57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/cmake-conf.mk b/src/cmake-conf.mk
new file mode 100644
index 0000000..d9c086d
--- /dev/null
+++ b/src/cmake-conf.mk
@@ -0,0 +1,57 @@
+# This file is part of MXE. See LICENSE.md for licensing information.
+
+PKG := cmake-conf
+$(PKG)_VERSION := 1
+$(PKG)_UPDATE := echo 1
+$(PKG)_TARGETS := $(BUILD) $(MXE_TARGETS)
+$(PKG)_FILE_DEPS := $(wildcard $(PWD)/src/cmake/conf/*)
+
+define $(PKG)_BUILD
+ # create the CMake toolchain file using template
+ # individual packages (e.g. hdf5) should add their
+ # own files under CMAKE_TOOLCHAIN_DIR
+
+ mkdir -p '$(CMAKE_TOOLCHAIN_DIR)'
+ touch '$(CMAKE_TOOLCHAIN_DIR)/.gitkeep'
+ cmake-configure-file \
+ -DCMAKE_VERSION=$(cmake_VERSION) \
+ -DCMAKE_SHARED_BOOL=$(CMAKE_SHARED_BOOL) \
+ -DCMAKE_STATIC_BOOL=$(CMAKE_STATIC_BOOL) \
+ -DLIBTYPE=$(if $(BUILD_SHARED),SHARED,STATIC) \
+ -DPREFIX=$(PREFIX) \
+ -DTARGET=$(TARGET) \
+ -DBUILD=$(BUILD) \
+ -DCMAKE_TOOLCHAIN_DIR='$(CMAKE_TOOLCHAIN_DIR)' \
+ -DINPUT='$(PWD)/src/cmake/conf/mxe-conf.cmake.in' \
+ -DOUTPUT='$(CMAKE_TOOLCHAIN_FILE)'
+
+ #create prefixed cmake wrapper script
+ cmake-configure-file \
+ -DCMAKE_VERSION=$(cmake_VERSION) \
+ -DPREFIX=$(PREFIX) \
+ -DTARGET=$(TARGET) \
+ -DBUILD=$(BUILD) \
+ -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
+ -DCMAKE_RUNRESULT_FILE='$(CMAKE_RUNRESULT_FILE)' \
+ -DINPUT='$(PWD)/src/cmake/conf/target-cmake.in' \
+ -DOUTPUT='$(PREFIX)/bin/$(TARGET)-cmake'
+ chmod 0755 '$(PREFIX)/bin/$(TARGET)-cmake'
+endef
+
+define $(PKG)_BUILD_$(BUILD)
+ # install cmake modules
+ mkdir -p '$(PREFIX)/share/cmake/modules'
+ $(INSTALL) -m644 '$(PWD)/src/cmake/modules/'* '$(PREFIX)/share/cmake/modules'
+
+ # install cmake-configure-file for general use
+ # cmake-configure-file -DINPUT -DOUTPUT -DFOO -DBAR -D...
+ mkdir -p '$(PREFIX)/bin'
+ echo 'configure_file($${INPUT} $${OUTPUT} @ONLY)' \
+ > '$(PREFIX)/share/cmake/modules/configure_file.cmake'
+ (echo '#!/usr/bin/env bash'; \
+ echo 'exec "$(PREFIX)/$(BUILD)/bin/cmake" "$$@" \
+ -P "$(PREFIX)/share/cmake/modules/configure_file.cmake"'; \
+ ) \
+ > '$(PREFIX)/bin/cmake-configure-file'
+ chmod 0755 '$(PREFIX)/bin/cmake-configure-file'
+endef