imxrt-vscode-cmake-skelton's People
imxrt-vscode-cmake-skelton's Issues
CMakeのProjDirPath変数が無意味
CMakeに元々準備されている PROJECT_SOURCE_DIR を使うべき
CMAKE_STATIC_LIBRARY_PREFIX(SUFFIX), CMAKE_EXECUTABLE_LIBRARY_PREFIX(SUFFIX)は必要か?
IMXRT-VSCode-CMake-Skelton/hello_world/CMakeLists.txt
Lines 21 to 25 in b4bed1e
が不要な気がする。
Windows用?
特に何も指定していないので、なにもしてないのと同じなはず。
flags.cmakeの設定が多すぎるしやり方が古い
C++やCのバージョン指定やdefineなんかも全部ここに書かれてしまっていて、手動で変更するのは非常に手間。
CMakeLists.txtを整理する方がいいかもしれない。
リンカ周り
RAMオンリーやSDRAM対応など色々あるのでリンカファイル(.ld拡張子のもの)が、
MIMXRT1021/gccフォルダ内に複数生成される。
ビルド時にCMAKE_BUILD_TYPEでそれらを切り替えるようになっているっぽい。
cd build
cmake -DCMAKE_BUILD_TYPE=FLEXSPI_NOR_DEBUG ..
など。
ただ、この仕組みは汎用的だが、必要以上にややこしくなっているように思う。
CMAKE_BUILD_TYPEは普通DebugとReleaseくらいしか使わないので、うっかり正しいBUILD_TYPEの指定を忘れそう。
将来的にはflags.cmakeを使わずに、こんな感じに書き直してもいいのかもしれない。
これは適当に書いたものなので注意すること。
参考: https://mcuoneclipse.com/2021/05/04/visual-studio-code-for-c-c-with-arm-cortex-m-part-2/
#CMakeLists.txt
set(LINKER_FILE ${CMAKE_SOURCE_DIR}/MIMXRT1021/gcc/MIMXRT1021xxxxx_flexspi_nor.ld)
target_link_options(${EXECUTABLE} PRIVATE
-T${LINKER_FILE}
-mcpu=cortex-m7
-mthumb
-mfpu=fpv5-d16
-mfloat-abi=hard
-specs=nano.specs
-specs=nosys.specs
-lc
-lm
-lnosys
-Wl,-Map=${PROJECT_NAME}.map,--cref
-Wl,--gc-sections
-Xlinker -print-memory-usage -Xlinker
)
CMakeのVersionとLanguageをProject()のオプションで指定すべきか?
project(hoge
VERSION 1.0.0
LANGUAGES C CXX ASM)
と書いてしまえば
IMXRT-VSCode-CMake-Skelton/hello_world/CMakeLists.txt
Lines 15 to 16 in b4bed1e
と
IMXRT-VSCode-CMake-Skelton/hello_world/CMakeLists.txt
Lines 5 to 7 in b4bed1e
は不要になるはず。
ただ、projectのオプション指定だと新しめのCMakeのバージョンが必要なのかもしれない。
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.