diff options
Diffstat (limited to 'src/cmake-conf.mk')
-rw-r--r-- | src/cmake-conf.mk | 57 |
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 |