Discussion about CodeLite development process and patches
stahta01
CodeLite Enthusiast
Posts: 39 Joined: Thu Dec 29, 2011 10:07 pm
Genuine User: Yes
IDE Question: C++
Contact:
Post
by stahta01 » Sat Jul 24, 2021 10:44 pm
Disable PCH for MinGW in:
databaselayer
wxshapeframework decided to try to use PCH in cmake build
wxsqlite3
If any of those should have PCH please inform me.
Edit: It looks like I should try to create an PCH for wxshapeframework using "wx_pch.h" in wxshapeframework folder.
I now have these PCH files created by cmake:
codelite_pch.h.gch
libplugin_pch.h.gch
libcodelite_pch.h.gch
wxshapeframework/src/wx_pch.h.gch
precompiled_header_release.h.gch
wxcrafter_pch_release.h.gch
Status update: Build made it to 93 percent and stopped on windres option error caused by add_definitions(-Winvalid-pch)
Changing to add_compile_options(-Winvalid-pch) to see if the error is fixed.
Note to self: Need to test debug build and verify cmake clean command deletes the gch file.
Tim S.
stahta01
CodeLite Enthusiast
Posts: 39 Joined: Thu Dec 29, 2011 10:07 pm
Genuine User: Yes
IDE Question: C++
Contact:
Post
by stahta01 » Sun Jul 25, 2021 9:41 pm
I have decided to close https://github.com/eranif/codelite/pull/2783 and rewrite it.
Edit: I have decided I need to rewrite "FindSqlite3.cmake" before doing a replacement for the closed PR.
Tim S.
stahta01
CodeLite Enthusiast
Posts: 39 Joined: Thu Dec 29, 2011 10:07 pm
Genuine User: Yes
IDE Question: C++
Contact:
Post
by stahta01 » Tue Jul 27, 2021 5:16 am
Posted new PR https://github.com/eranif/codelite/pull/2789 that should allow these directions to be used.
Tim S.
Code: Select all
# msys2 mingw CodeLite build directions
# Open MSys2 MinGW prompt either MinGW32 or MinGW64
pacman -S --needed ${MINGW_PACKAGE_PREFIX}-wxWidgets && \
pacman -S --needed ${MINGW_PACKAGE_PREFIX}-hunspell && \
pacman -S --needed ${MINGW_PACKAGE_PREFIX}-clang && \
pacman -S --needed ${MINGW_PACKAGE_PREFIX}-cmake && \
pacman -S --needed ${MINGW_PACKAGE_PREFIX}-gcc && \
pacman -S --needed ${MINGW_PACKAGE_PREFIX}-boost && \
pacman -S --needed ${MINGW_PACKAGE_PREFIX}-libssh && \
pacman -S --needed ${MINGW_PACKAGE_PREFIX}-pkgconf && \
pacman -S --needed make
# cd "C:\repos\git" && git clone https://github.com/eranif/codelite.git && cd codelite
# cd "C:\repos\git" && cd codelite
# Confirm we are in the base codelite git folder and remove old build folder
cd ../../codelite || cd ../codelite && rm -fr build-release && \
mkdir -p build-release && cd build-release && \
cmake .. -DCMAKE_BUILD_TYPE=Release -DCL_PREFIX=${MINGW_PREFIX}/local -G"MSYS Makefiles" \
-DWITH_WX_CONFIG=${MINGW_PREFIX}/bin/wx-config -DwxWidgets_wxrc_EXECUTABLE=${MINGW_PREFIX}/bin/wxrc.exe && \
cmake --build . 2>&1 | tee ../buildnoPCHlog.txt ; cd .. && \
cd build-release && cmake --build . --target install ; cd ..
# To launch CodeLite:
${MINGW_PREFIX}/local/bin/codelite.exe
stahta01
CodeLite Enthusiast
Posts: 39 Joined: Thu Dec 29, 2011 10:07 pm
Genuine User: Yes
IDE Question: C++
Contact:
Post
by stahta01 » Sat Jul 31, 2021 9:39 pm
The 64 bit version of CodeLite runs and exists with no problem.
The 32 bit version crashes before it shows the IDE. The problem seems to be related to calling MSWSetWindowDarkTheme from DoSysColoursChanged
Edit: The 32 bit crash happen with both wxWidgets 3.0 and 3.1.
Edit2: Building an wxWidgets 3.1 with max debug enabled in hope that I will see something more.
Tim S.
eranif
CodeLite Plugin
Posts: 6375 Joined: Wed Feb 06, 2008 9:29 pm
Genuine User: Yes
IDE Question: C++
Contact:
Post
by eranif » Sun Aug 01, 2021 1:21 pm
I wouldn't invest too much in 32 bit CodeLite.
I don't think its worth it, we only build it for Windows and I do plan on dropping it for the next version (16)
stahta01
CodeLite Enthusiast
Posts: 39 Joined: Thu Dec 29, 2011 10:07 pm
Genuine User: Yes
IDE Question: C++
Contact:
Post
by stahta01 » Mon Aug 02, 2021 4:35 am
The current directions I am using; they should work for 64 bit builds. I had to commented out the code that did not work under 32 bit in my Git repo testing branch.
https://github.com/stahta01/codelite/tree/testing
Edit: Added step to create codelite.bat; it seems to almost work okay now. The problems I am having are normal CodeLite user issues that an expert user should know how to fix. Note: I am not expert user; just a beginning user.
Edited step to create codelite.bat.
Tim S.
Edited directions below on 2021-08-07
Code: Select all
# msys2 mingw CodeLite build directions
# Open MSys2 MinGW prompt either MinGW32 or MinGW64
# Install needed MSys2 Mingw packages
pacman -S --needed ${MINGW_PACKAGE_PREFIX}-wxmsw3.1 && \
pacman -S --needed ${MINGW_PACKAGE_PREFIX}-hunspell && \
pacman -S --needed ${MINGW_PACKAGE_PREFIX}-clang && \
pacman -S --needed ${MINGW_PACKAGE_PREFIX}-cmake && \
pacman -S --needed ${MINGW_PACKAGE_PREFIX}-gcc && \
pacman -S --needed ${MINGW_PACKAGE_PREFIX}-boost && \
pacman -S --needed ${MINGW_PACKAGE_PREFIX}-libssh && \
pacman -S --needed ${MINGW_PACKAGE_PREFIX}-pkgconf && \
pacman -S --needed make
# Get CodeLite source code using master branch
pacman -S --needed git && \
mkdir -p ~/devel && cd ~/devel && git clone git://github.com/eranif/codelite.git && cd codelite && git pull --rebase
# Update CodeLite source code
cd ~/devel/codelite && git checkout master && git pull --rebase
# Build/Install Release Configure without PCH and wxWidgets version 3.1
cd ~/devel/codelite && rm -fr build-release && \
mkdir -p build-release && cd build-release && \
cmake .. -DCMAKE_BUILD_TYPE=Release -DCL_PREFIX=${MINGW_PREFIX}/local -G"MSYS Makefiles" \
-DWITH_PCH=0 -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-DWITH_WX_CONFIG=${MINGW_PREFIX}/bin/wx-config-3.1 -DwxWidgets_wxrc_EXECUTABLE=${MINGW_PREFIX}/bin/wxrc-3.1.exe 2>&1 | tee ../configRel.log && \
cmake --build . --target install 2>&1 | tee ../buildInstallRelnoPCH.log ; cd ..
# Create normal codelite.bat
cd "${MINGW_PREFIX}/local/bin" && \
echo "SET PATH=$(cygpath -wm ${MINGW_PREFIX})/local/bin;$(cygpath -wm ${MINGW_PREFIX})/bin;$(cygpath -wm /)usr/bin;%PATH%" > codelite.bat && \
echo "codelite.exe" >> codelite.bat
# To launch CodeLite using codelite.bat
cd "${MINGW_PREFIX}/local/bin" && \
CMD.exe /C codelite.bat
Directions I am using with my Git Testing branch trying to figure out what looks like an wxWidgets crash issue
Code: Select all
# Get CodeLite source code
pacman -S --needed git && \
mkdir -p ~/devel && cd ~/devel && git clone git://github.com/stahta01/codelite.git && cd codelite && git checkout testing && git pull --rebase
# Update CodeLite source code
cd ~/devel/codelite && git checkout testing && git pull --rebase
# Build/Install Debug Configure using PCH and wxWidgets version 3.1
cd ~/devel/codelite && rm -fr build-debug && \
mkdir -p build-debug && cd build-debug && \
cmake .. -DCMAKE_BUILD_TYPE=Debug -DCL_PREFIX=${MINGW_PREFIX}/local -G"MSYS Makefiles" \
-DWITH_PCH=1 -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-DWITH_WX_CONFIG=${MINGW_PREFIX}/bin/wx-config-3.1 -DwxWidgets_wxrc_EXECUTABLE=${MINGW_PREFIX}/bin/wxrc-3.1.exe 2>&1 | tee ../configDbg.log && \
cmake --build . --target install 2>&1 | tee ../buildInstallDbgPCH.log ; cd ..
# Create codelite.sh using gdb
pacman -S --needed ${MINGW_PACKAGE_PREFIX}-gdb && \
cd "${MINGW_PREFIX}/local/bin" && \
echo "export PATH=${MINGW_PREFIX}/local/bin:${MINGW_PREFIX}/bin:/usr/bin:$PATH" > codelite.sh && \
echo "${MINGW_PREFIX}/bin/gdb.exe codelite.exe" >> codelite.sh
# To launch CodeLite using codelite.sh
${MINGW_PREFIX}/local/bin/codelite.sh
# Create wx-config redirect script
cd "${MINGW_PREFIX}/local/bin" && \
echo '#!/bin/bash' > wx-config && \
echo '' >> wx-config && \
echo 'if [[ -z "${WXCFG}" && $@ != *"--wxcfg"* ]]; then' >> wx-config && \
echo ' if [[ $@ == *"--rcflags"* ]]; then' >> wx-config && \
echo ' _newCommandLine="${@/--rcflags/--rescomp}"' >> wx-config && \
echo ' ${MINGW_PREFIX}/bin/wx-config --prefix=${MINGW_PREFIX} ${_newCommandLine} | sed s''/windres //''' >> wx-config && \
echo ' else' >> wx-config && \
echo ' ${MINGW_PREFIX}/bin/wx-config --prefix=${MINGW_PREFIX} $@' >> wx-config && \
echo ' fi' >> wx-config && \
echo 'else' >> wx-config && \
echo ' wx-config-win $@' >> wx-config && \
echo 'fi' >> wx-config