# 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)_DEPS := $(BUILD)~$(PKG)$(PKG)_FILE_DEPS := $(wildcard $(PWD)/src/cmake/*/*)$(PKG)_DEPS_$(BUILD) := cmake # ensure conf is also built for a minimal `make cc cmake`cmake: 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) \ -DPROCESSOR=$(PROCESSOR) \ -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' ln -sf '$(PREFIX)/$(BUILD)/bin/cpack' '$(PREFIX)/bin/$(TARGET)-cpack'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' # make target-cmake a simple symlink ln -sf '$(PREFIX)/$(BUILD)/bin/cmake' '$(PREFIX)/bin/$(TARGET)-cmake'endef
# 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)_DEPS := $(BUILD)~$(PKG)
$(PKG)_FILE_DEPS := $(wildcard $(PWD)/src/cmake/*/*)
$(PKG)_DEPS_$(BUILD) := cmake
# ensure conf is also built for a minimal `make cc cmake`
cmake: 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) \
-DPROCESSOR=$(PROCESSOR) \
-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'
ln -sf '$(PREFIX)/$(BUILD)/bin/cpack' '$(PREFIX)/bin/$(TARGET)-cpack'
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'
# make target-cmake a simple symlink
ln -sf '$(PREFIX)/$(BUILD)/bin/cmake' '$(PREFIX)/bin/$(TARGET)-cmake'
endef