-
Notifications
You must be signed in to change notification settings - Fork 19
IDE-1157 Add x64 build to presets and fix related issues #585
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
IDE-1157 Add x64 build to presets and fix related issues #585
Conversation
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.
Pull Request Overview
This PR adds x64 (64-bit) build support to the ECL IDE project and fixes compatibility issues that arise when building for the x64 architecture. The changes address type safety issues related to pointer size differences between 32-bit and 64-bit platforms.
Key Changes
- Added x64 build configurations and presets for CMake and Visual Studio
- Fixed pointer-to-integer casting issues for 64-bit compatibility
- Updated Scintilla lexer function signatures to use proper 64-bit types
- Added platform-specific compiler flags and library handling
Reviewed Changes
Copilot reviewed 18 out of 19 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| CMakePresets.json | Added x64 build presets for Ninja and Visual Studio generators |
| wtlex/atlwinmisc.h | Fixed pointer casting in property get/set methods for x64 compatibility |
| sgrid/GridCtrl_src/ | Added conditional compilation for OnTimer method signature differences |
| eclide/mainfrm.h/.cpp | Added conditional compilation for OnTimer method and simplified status bar code |
| dockingwindows/ | Fixed GetClassLong calls to use x64-compatible GetClassLongPtr |
| EclEditor/Lex*.cxx | Updated Scintilla lexer function signatures for 64-bit position types |
| comms/CMakeLists.txt | Added /bigobj compiler flag for large object files |
| BugTrap/CMakeLists.txt | Added x64-specific library handling and warning suppressions |
| .vscode/ | Updated VS Code configuration files for better debugging support |
| void CMainFrame::Send_RefreshStatusBar1(const TCHAR* pStr) | ||
| { | ||
| ATLASSERT(pStr != 0); | ||
|
|
||
| va_list args; | ||
| va_start(args, pStr); | ||
|
|
||
| TCHAR buffer[512 * sizeof(TCHAR)] = {0}; | ||
|
|
||
| int nLen = wvsprintf(buffer, pStr, args); | ||
| nLen; | ||
|
|
||
| ATLASSERT(nLen < 512); | ||
| ATLASSERT(nLen == lstrlen(buffer)); | ||
|
|
||
| CMFCRibbonBaseElement * elem = m_wndStatusBar.GetExElement(0); | ||
| elem->SetText(buffer); | ||
|
|
||
| va_end(args); | ||
| elem->SetText(pStr); | ||
| } |
Copilot
AI
Oct 14, 2025
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.
The function signature expects a variadic function (based on the removed va_list code) but now only accepts a single string parameter. This breaks the API contract if callers are passing format strings with arguments.
| SET( CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:zlibS-x64.lib" ) | ||
| SET( CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:zlibS-x64.lib" ) | ||
| SET( CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} /NODEFAULTLIB:zlibS-x64.lib" ) | ||
| else() | ||
| SET( CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:zlibSD.lib" ) | ||
| SET( CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:zlibS.lib" ) |
Copilot
AI
Oct 14, 2025
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.
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL should reference CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL, not CMAKE_SHARED_LINKER_FLAGS_RELEASE, to maintain consistency with the existing pattern.
| SET( CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:zlibS-x64.lib" ) | |
| SET( CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:zlibS-x64.lib" ) | |
| SET( CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} /NODEFAULTLIB:zlibS-x64.lib" ) | |
| else() | |
| SET( CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:zlibSD.lib" ) | |
| SET( CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:zlibS.lib" ) | |
| SET( CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "${CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL} /NODEFAULTLIB:zlibS-x64.lib" ) | |
| SET( CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:zlibS-x64.lib" ) | |
| SET( CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} /NODEFAULTLIB:zlibS-x64.lib" ) | |
| else() | |
| SET( CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:zlibSD.lib" ) | |
| SET( CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "${CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL} /NODEFAULTLIB:zlibS.lib" ) |
Signed-off-by: Gordon Smith <[email protected]>
dcfea51 to
d0e202e
Compare
No description provided.