fc-mod-cpp.mk: Add fc-mod-cpp.mk

Still contains lots of cruft, but already works against FreeCAD-devel package

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2017-07-25 15:03:32 +00:00
commit 79d0eddbe5

65
make/fc-mod-cpp.mk Normal file
View file

@ -0,0 +1,65 @@
#FC_BASE_DIR = $(HOME)/rpmbuild/BUILD/FreeCAD-git
#FC_PREFIX = $(HOME)/rpmbuild/BUILDROOT/FreeCAD-0.17_pre_4961_g526ead1c7-20170725.x86_64.test
FC_PREFIX =
FC_MODULE_BASENAME ?= $(notdir $(shell pwd))
FC_PY_API_XML = $(wildcard *.xml)
FC_INIT_PY ?= $(wildcard Init.py InitGui.py)
FC_GENERATED_CPP = $(patsubst %.xml,%.cpp,$(FC_PY_API_XML))
FC_GENERATED_H = $(patsubst %.xml,%.h,$(FC_PY_API_XML))
FC_GENERATED_O = $(patsubst %.xml,%.o,$(FC_PY_API_XML))
FC_GENERATED = $(FC_GENERATED_H) $(FC_GENERATED_CPP) $(FC_GENERATED_O)
FC_OBJ = $(patsubst %.cpp,%.o,$(filter-out $(FC_GENERATED_CPP),$(wildcard *.cpp)))
FC_MODULE = $(FC_MODULE_BASENAME).so
#FC_GENERATE_PY=$(FC_BASE_DIR)/src/Tools/generate.py
#FC_GENERATE_PY = $(FC_PREFIX)/usr/bin/fc-generate.py
FC_GENERATE_PY = $(FC_PREFIX)/usr/lib64/FreeCAD/Tools/generate.py
FC_INSTALL_LIBDIR = $(ENV_PREFIX)/usr/lib64/FreeCAD/lib
FC_INSTALL_PYDIR = $(ENV_PREFIX)/usr/lib64/FreeCAD/Mod/$(FC_MODULE_BASENAME)
FC_INSTALLED_MODULE = $(FC_INSTALL_LIBDIR)/$(FC_MODULE)
FC_INSTALLED_PYTHON = $(addprefix $(FC_INSTALL_PYDIR)/,$(FC_INIT_PY))
FC_INSTALL_DIRS = $(sort $(FC_INSTALL_LIBDIR) $(FC_INSTALL_PYDIR))
FC_INSTALLED = $(FC_INSTALLED_MODULE) $(FC_INSTALLED_PYTHON)
#INCLUDE += -I$(FC_BASE_DIR)/src -I$(FC_BASE_DIR)/build/src
INCLUDE += -I$(FC_PREFIX)/usr/include/FreeCAD
INCLUDE += $(shell pkg-config --cflags python QtCore) -I/usr/include/oce
#LIBFLAGS += -L$(FC_BASE_DIR)/build/lib -lFreeCADApp -lFreeCADBase
LIBFLAGS += -L$(FC_PREFIX)/usr/lib64/FreeCAD/lib -lFreeCADApp -lFreeCADBase
LIBFLAGS += $(shell pkg-config --libs python QtCore)
#/usr/bin/c++ -fPIC -Wall -Wextra -Wno-write-strings -fpermissive -std=c++11 -D_OCC64 -g -DFC_DEBUG -Wl,--no-undefined -shared -Wl,-soname,Image.so -o ../../../../Mod/Image/Image.so CMakeFiles/Image.dir/ImageBase.cpp.o CMakeFiles/Image.dir/ImagePlane.cpp.o CMakeFiles/Image.dir/PreCompiled.cpp.o CMakeFiles/Image.dir/AppImage.cpp.o -Wl,-rpath,/home/jan/rpmbuild/BUILD/FreeCAD-git/build/lib: ../../../../lib/libFreeCADApp.so ../../../../lib/libFreeCADBase.so -lpython2.7 -lxerces-c -lz -lutil -ldl -lboost_filesystem -lboost_program_options -lboost_regex -lboost_signals -lboost_system -lboost_thread -lboost_chrono -lboost_date_time -lboost_atomic -lQtXml -lQtCore
#include $(MODDIR)/make/so.mk
include $(MODDIR)/make/defs.mk
all: $(FC_MODULE)
clean: clean.generated clean.local
install: $(FC_INSTALLED)
%Imp.o: %.h
%.h: %.xml
python $(FC_GENERATE_PY) $<
%.o: %.cpp
$(CPP) $(BUILD_CPPFLAGS) -c $< -o $@
$(FC_MODULE): $(FC_OBJ)
$(LD) -shared $(BUILD_LDFLAGS) $^ -o $@
clean.generated:
rm -f $(FC_GENERATED)
clean.local:
rm -f $(FC_MODULE) *.o *.done
create-dirs.done:
$(INSTALL) -d -m $(LIBDIRMODE) -o $(LIBDIROWNER) -g $(LIBDIRGROUP) $(FC_INSTALL_DIRS)
$(FC_INSTALL_PYDIR)/%.py: %.py create-dirs.done
$(INSTALL) -m $(PYMODMODE) -o $(PYMODOWNER) -g $(PYMODGROUP) $< $@
$(FC_INSTALL_LIBDIR)/%.so: %.so
$(INSTALL) -m $(LIBMODE) -o $(LIBOWNER) -g $(LIBGROUP) $< $@