[SOLVED] Configure Qt Creator for not to run qmake



  • Hello,

    I have written a make file by myself. So, I do not want qmake to create a Makefile.

    But every time, when I say "build" it overwrites the Makefile that I have created.

    How can I stop this behaviour?

    My expectation is, when I say "build" it shall run the Makefile that I have created.

    Thanks!

    --Kumara


  • Lifetime Qt Champion

    Hi,

    Do you have a .pro file for your project ?



  • @SGaist Yes I do have a pro file.


  • Lifetime Qt Champion

    In that case, why the separated Makefile ? Do you need anything special that you can't generate from a .pro file ?



  • @SGaist That's right!

    I have some more contents in the Makefile for my system needs.

    That's why I don't want to generate Makefile from .pro file.


  • Moderators

    @kumararajas said:

    I have some more contents in the Makefile for my system needs.

    That's why I don't want to generate Makefile from .pro file.

    What are those contents? You might be able to ask qmake to generate them for you automatically.



  • @JKSH

    My bad with unclarity message.

    With respect to TI AM335x SDK, we should run a script "environment-setup" that sets up the environment for cross compilation.

    To do this process systematically, I need someone to do this process before running "qmake" and generate pro file.

    So, I have written a Makefile, that setup the environment first and then runs qmake and generates Makefile (In a different name, just not to overwrite). And then run the generated Makefile.

    There is an another way to set all these environment variables at user level, but I don't want to do that. Because, these path required only while cross compiling the UI application.

    That's the reason that I have done this in a Makefile, which sets the variables with the values and goes off after execution.

    Please let me know if I have conveyed correctly or not.

    Thanks,
    Kumara


  • Moderators

    Hi,

    @kumararajas said:

    With respect to TI AM335x SDK, we should run a script "environment-setup" that sets up the environment for cross compilation.

    The standard way to set your environment is to:

    1. Set up an appropriate Kit in Qt Creator: http://doc.qt.io/qtcreator/creator-targets.html, and then
    2. Use this Kit to build your UI application.


  • @JKSH said:

    The standard way to set your environment is to:

    As I have mentioned, I have written my Makefile, which will set the environment and that works good when I build from command line.

    I would like to run my make file from Qt Creator as well.

    I understand the standard way that you explained.

    Is there a possibility for doing the above said?


  • Moderators

    @kumararajas said:

    Is there a possibility for doing the above said?

    Hmm... I don't think so, unfortunately.

    If you want, you can submit a feature request to https://bugreports.qt.io/


  • Lifetime Qt Champion

    Can you share the environment setup that your Makefile does ?



  • @SGaist Sure. Here is how my Makefile look like:

    #################################################################################
    # INCLUDES
    #################################################################################
    include $(ROOT)/build/ui_defs.mk
    
    #################################################################################
    # TARGETS
    #################################################################################
    
    # Target 'all' to build the UI Application and deploy by coping the files to right location
    # More of incremental build
    all: uibuilder deploy
    
    # Clean build of UI Application
    cleanbuild: clean all
    
    # Calls qmake and creates Makefile and then execute them.
    uibuilder:
            $(QMAKEPATH)qmake -o Makefile_g $(QMAKESPEC_SWITCH) $(QMAKESPEC) $(PRO_FILE_NAME)
            make -f Makefile_g
    
    # Remove the object files, mock files, and generated Makefiles
    clean:
            rm -rf generated_files/
            rm -f Makefile_g
            rm -f devapp/Makefile_g
            rm -f uicorelib/Makefile_g
    


  • @kumararajas This is how my ui_defs.mk file looks like

    export SDK_PATH=/usr/local/etc/g-cpu/sdk/linux-devkit
    export SDK_SYS=i686-arago-linux
    export REAL_MULTIMACH_TARGET_SYS=cortexa8hf-vfp-neon-3.8-oe-linux-gnueabi
    export TOOLCHAIN_SYS=arm-linux-gnueabihf
    export TOOLCHAIN_PREFIX=$(TOOLCHAIN_SYS)-
    export SDK_PATH_NATIVE=$(SDK_PATH)/sysroots/$(SDK_SYS)
    export SDK_PATH_TARGET=$(SDK_PATH)/sysroots/$(REAL_MULTIMACH_TARGET_SYS)
    export PKG_CONFIG_SYSROOT_DIR=$(SDK_PATH_TARGET)
    export PKG_CONFIG_PATH=$(SDK_PATH_TARGET)/usr/lib/pkgconfig
    export PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
    export CONFIG_SITE=$(SDK_PATH)/site-config-$(REAL_MULTIMACH_TARGET_SYS)
    export CC=$(SDK_PATH_NATIVE)/usr/bin/$(TOOLCHAIN_PREFIX)gcc
    export CXX=$(SDK_PATH_NATIVE)/usr/bin/$(TOOLCHAIN_PREFIX)g++
    export GDB=$(SDK_PATH_NATIVE)/usr/bin/$(TOOLCHAIN_PREFIX)gdb
    export CPP=$(SDK_PATH_NATIVE)/usr/bin/$(TOOLCHAIN_PREFIX)gcc -E
    export NM=$(SDK_PATH_NATIVE)/usr/bin/$(TOOLCHAIN_PREFIX)nm
    export AS=$(SDK_PATH_NATIVE)/usr/bin/$(TOOLCHAIN_PREFIX)as
    export AR=$(SDK_PATH_NATIVE)/usr/bin/$(TOOLCHAIN_PREFIX)ar
    export RANLIB=$(SDK_PATH_NATIVE)/usr/bin/$(TOOLCHAIN_PREFIX)ranlib
    export OBJCOPY=$(SDK_PATH_NATIVE)/usr/bin/$(TOOLCHAIN_PREFIX)objcopy
    export OBJDUMP=$(SDK_PATH_NATIVE)/usr/bin/$(TOOLCHAIN_PREFIX)objdump
    export STRIP=$(SDK_PATH_NATIVE)/usr/bin/$(TOOLCHAIN_PREFIX)strip
    export CONFIGURE_FLAGS=--target=arm-oe-linux-gnueabi --host=arm-oe-linux-gnueabi --build=i686-linux --with-libtool-sysroot=$(SDK_PATH_TARGET)
    export CPPFLAGS= -march=armv7-a -marm -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a8 --sysroot=$(SDK_PATH_TARGET)
    export CFLAGS=$(CPPFLAGS)
    export CXXFLAGS=$(CPPFLAGS)
    export LDFLAGS= --sysroot=$(SDK_PATH_TARGET)
    export OECORE_NATIVE_SYSROOT=$(SDK_PATH_NATIVE)
    export OECORE_TARGET_SYSROOT=$(SDK_PATH_TARGET)
    export OECORE_ACLOCAL_OPTS=-I $(SDK_PATH_NATIVE)/usr/share/aclocal
    export OECORE_DISTRO_VERSION=2013.12
    export OECORE_SDK_VERSION=2013.12
    export OE_QMAKE_CFLAGS=$(CFLAGS)
    export OE_QMAKE_CXXFLAGS=$(CXXFLAGS)
    export OE_QMAKE_LDFLAGS=$(LDFLAGS)
    export OE_QMAKE_CC=$(CC)
    export OE_QMAKE_CXX=$(CXX)
    export OE_QMAKE_LINK=$(CXX)
    export OE_QMAKE_AR=$(AR)
    export OE_QMAKE_LIBDIR_QT=$(SDK_PATH_TARGET)/usr/lib
    export OE_QMAKE_INCDIR_QT=$(SDK_PATH_TARGET)/usr/include/qtopia
    export OE_QMAKE_HOST_BINDIR_QT=$(SDK_PATH_NATIVE)/usr/bin/
    export OE_QMAKE_MOC=$(SDK_PATH_NATIVE)/usr/bin/moc4
    export OE_QMAKE_UIC=$(SDK_PATH_NATIVE)/usr/bin/uic4
    export OE_QMAKE_UIC3=$(SDK_PATH_NATIVE)/usr/bin/uic34
    export OE_QMAKE_RCC=$(SDK_PATH_NATIVE)/usr/bin/rcc4
    export OE_QMAKE_QDBUSCPP2XML=$(SDK_PATH_NATIVE)/usr/bin/qdbuscpp2xml4
    export OE_QMAKE_QDBUSXML2CPP=$(SDK_PATH_NATIVE)/usr/bin/qdbusxml2cpp4
    export OE_QMAKE_QT_CONFIG=$(SDK_PATH_TARGET)/usr/share/qtopia/mkspecs/qconfig.pri
    export OE_QMAKE_STRIP=echo
    export QMAKESPEC=$(SDK_PATH_TARGET)/usr/share/qtopia/mkspecs/linux-gnueabi-oe-g++
    export QMAKESPEC_SWITCH=-spec
    export QMAKE_DEFAULT_LIBDIRS=${QT_QMAKE_LIBDIR_QT}
    export QMAKE_DEFAULT_INCDIRS=${QT_QMAKE_INCDIR_QT}
    export PS1="[\e[32;1m][linux-devkit][\e[0m]:\w> "
    export QMAKE_PATH=$(SDK_PATH_NATIVE)/usr/bin/
    


  • @kumararajas ui_defs.mk file, sets the environment path.

    And my Makefile calls qmake and generates Makefile_g using the environment set.


  • Lifetime Qt Champion

    Did you try editing the Build Environment to match what you have in your ui_dfs.mk ?



  • @SGaist said:

    Did you try editing the Build Environment to match what you have in your ui_dfs.mk ?

    To some extent, but not fully. I just took "environment_setup" script and modifed some of the details by myself to match the build environment.



  • Alright, I found the solution by myself.

    That's by disabling the default build steps and adding custom build step for "Make".

    For /usr/bin/make command, I pass the argument to my own Makefile with the appropriate parameters.
    And it works cool for me!

    --Kumara


  • Moderators

    Great, thanks for sharing your solution!


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.