Closed sksat closed 2 weeks ago
Win, 32bit, C2A=ON の時だけこの変更で落ちるのはあまりに変なので、Actions の minor update などを疑って #711 をやったが、違いそう
rebase
64bit で USE_C2A=ONの時、CI はパスしてるけどビルドがスキップされてる
そもそも 64bit ビルドが追加されたのがここか
単純に libC2A をリンクしようとした時にリンクエラーになる、のであればまだ make sense。しかし、SILS-S2E の際は 32bit ビルドを強制させたい、のであれば後出しジャンケン的に無かったことにするべきではない。
しかし、SILS-S2E の際は 32bit ビルドを強制させたい、のであれば後出しジャンケン的に無かったことにするべきではない。
そうですね。これはこれ以外のやり方がいまいちわからなかったので無理やりやったという感じです。 スマートな感じに修正していただけると嬉しいです!
@200km #712 で、include という機能を使って存在する組み合わせをベタ書きするようにしてみました
rebase
Visual Studio のリンカ(link.exe)の挙動が微妙だったためやや dirty hack も入っているが、通った(ここらへんは native Windows のサポートを続けるかどうかも含めて考えたい)
@200km いつもの摩訶不思議なことになってしまっている target_link_libraries()
をシンプルにするパッチです。ビルドがシンプルになると AE 側の Rust の資産との接続が行いやすくなるといったメリットもあるため、マージできるとうれしいです。
FYI: @suzuki-toshihir0 @tarotene
Related issues
N/A
Description
s2e-core-internal libraries like
COMPONENT
have complex (and cyclic) dependencies with each other, since they are only for build S2E.However, these libraries are built as static libraries. This causes the final executable link to not succeed unless non-trivial link configuration is performed many times. https://github.com/ut-issl/s2e-core/blob/6ca93ed37cd7b98a922b792d39fd4e237292684f/CMakeLists.txt#L185-L198
This PR change these libraries to be built as object libraries feature provided by CMake. It eliminates the need to specify dependencies mid-build by allowing circular dependencies to exist until the final executable link. https://github.com/ut-issl/s2e-core/blob/7f8ae7c48c1e9dd7e9fc0010af453620ffc24d18/CMakeLists.txt#L183-L200
Test results
N/A
Impact
The build process is a bit changed; S2E users also need to make a similar modification to this PR in their
CMakeLists.txt
.Supplementary information
This simplifies the build process and makes it easier to expand use cases, such as interoperation with Rust.