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.