-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
change CI CMake build to use Open Watcom toolchain #955
Conversation
Have you tested all of those builds you are proposing to add to cmake.yml? |
I tested build only. You can check build and test result here |
.github/workflows/cmake.yml
Outdated
- name: Generate project files | ||
run: cmake -S ${{ matrix.src-dir || '.' }} -B ${{ matrix.build-dir || '.' }} ${{ matrix.cmake-args }} -D CMAKE_BUILD_TYPE=${{ matrix.build-config || 'Release' }} | ||
if: matrix.compiler != 'watcom' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This step shouldn't need a separate version for watcom.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't want to change anything for other compilers because I have no experiencies with them and cmake.
matrix.compiler is as class for watcom instead of for others. Also cmake support Watcom compilers cross-compilation without need of special cmake configuration scripts. it is control directly by CMAKE_SYSTEM_NAME and CMAKE_SYSTEM_PROCESSOR macros. And also reference to current directory for output files is not good solution for Watcom because some intermediate files created by Watcom overwrite zlib source files. That during testing destroys sources and you cannot repeate steps. I did it this simple way that matrix.compiler is used to switch to watcom logic and not control Watcom version etc. It can be changed to any other variable, but we need to know if WATCOM toolchain or others somehow to switch between two modes.
!!!! Important change is that you must not setup environment CC: ${{ matrix.compiler }} for Watcom, which is main reason to do it this way for watcom (you must not setup CC: variable any way) !!!!!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I separated CI CMake build change from OS/2 build fix that here is only CI CMake related changes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
NOTE for CMake use with watcom:
- watcom must be used with -G "Watcom WMake" because it setup WATCOM stuff in CMake
- watcom mode in CMake doesn't use POSIX CC mechanism, therefore you cannot use CC environment variable
I submit new #958 PR with OS/2 DLLbuild fix that this PR is only for CI CMake build changes |
I little reworked CI CMake actions script by using if conditions to follow existing workflow without specific actions for Watcom |
Pre-requisity for this change is PR "correct Open Watcom OS/2 build #958" |
@jmalak: Why have you closed it? |
@Neustradamus and why wouldn't I do it, they don't value voluntary contributors, they wanted it great and then they weren't even able to answer, I already wasted my time with it and it was useless, I'll go help where they value contributors |
@jmalak I apologize that you do not feel valued. There are too many submissions here for me to attend to all of them in a timely manner. |
Sorry, ridiculous excuses, still waiting for contributions from 2013, so maybe 10 years from now. |
add __export modifier if DLL is requested to properly generate import library zlib.lib for OS/2
add CMake cross-compilation build by Open Watcom for 16/32-bit DOS and OS2, 32-bit Windows and 32-bit Linux