There is no requirement for a particular project layout, but this kind of layout is convenient for cross-platform projects:
/ProjectName /source /ui /ios /android /macos /javafx /web /etc... /platform (optional) /ios /android /macos /windows /web /etc...
/source - shared cross-platform C++ code.
/ui - folders with different versions of UI code. These may or may not have a one to one correspondence to a particular platform. You may, for example, have a production version of UI for macOS written in Swift and a test version of UI written in Java with JavaFX library, which can run on many different platforms, like Windows, macOS and Linux (it will not look truly native, but for a test UI this is probably fine).
/platform (optional) - folders with platform dependent C++ code, used to access platform specific APIs. On Android this would be C++ JNI code (using Scapix Java Link for example), on iOS/macOS this would be ObjectiveC++ code, etc.