-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO.txt
27 lines (27 loc) · 4.84 KB
/
TODO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
-check if the use of `collect_together()` and `collect_apart()` tampers the previously set COLLECTOR_COLLECT_TOGETHER.
-separate the collections installation, etc, from the main process of cmake(ie: like yarn install, yarn build)
-when changed some version of collection to download, if was previously compiled with, the build does not trigger the download step cause the cache thinks that target is already downloaded, so starts only an update step
-there is one bug, if the collections folder of project is deleted, the compilation cant find some collections, cause does not install some of them
-the optional variable for collect function, RETURN_TARGET, can hold anything, need to be set to only boolean or something like that
-need to handle/set/add to CMAKE_PREFIX_PATH for cmake to be able to find modules like SDL2.cmake in there(this one for example is installed manually to collections) ie (list(APPEND CMAKE_PREFIX_PATH ${COLLECTOR_INSTALLS}/${CMAKE_CXX_COMPILER_ID}-${CMAKE_CXX_COMPILER_VERSION}/cmake))
-need a variable so can access the full path to currently installed collections, this depends on compiler and version ie(${COLLECTOR_INSTALLS}/${CMAKE_CXX_COMPILER_ID}-${CMAKE_CXX_COMPILER_VERSION})
-also update doc to show how to use custom manually installed libraries and headers, like with SDL2
-introduce tests in collections
-add hack used in frittersFrontend for findpackage after a external_project_add, UPDT I tried to use only fetch content for this, but does not work, is practically the same, the compilation of collections is done in build time, so cant find any package, btw the only needed change to make collect() build when using fetch content is change inside collect_src fetch-content_populate for fetch_content_Make_available
-recheck all of collect_src, store paths, behavior when collect together and apart, naming conventions, the .git needed in repo name parameter when calling function
-put in readme the use of return target in collect function
-make collect_src to add source files before add_executable in order to be able to use the downloaded source files, like some .cpp, or be able to add files to compile later with some command like target_sources(), maybe make optional the use of dependant parameter in functions collect and collect_src
-rethink how to use fetchContent_make_available to compile and install things
-start using GIT_SHALLOW <bool> to avoid cloning whole collections, at least when used in https://cmake.org/cmake/help/latest/module/ExternalProject.html, with fetch content i do not know
-the separation of builds in temp workbench for different build types is working very badly, at least when not specified manually the build type, like in vscode when changed build type in extension option appearing in bottom of vscode, i cant understand, but may be something of cmake cache of external projects, because on really clean configure(ie closes vscode opens and configure , then build) it stores the compiled collection where it should ${COLLECTOR_DIR}/temp_workbench/${CMAKE_CXX_COMPILER_ID}-${CMAKE_CXX_COMPILER_VERSION}-${CMAKE_GENERATOR_NO_SPACES}/${collection_name_hash_appended}/${CMAKE_BUILD_TYPE}/ on subsequent changes of build type(in vscode) it remains using previous build type in the mentioned path, or uses ${CMAKE_BUILD_TYPE} as empty, not sure , and i think that when opened for first time(selected kit and all) in vscode it behaves very badly regarding same issue, this last issue is if ${CMAKE_BUILD_TYPE} is empty, probably need to redefine it in collector.cmake as debug or something default UPDT: indeed when not specified ${CMAKE_BUILD_TYPE} it appears empty, causing the storage of build collections cache in wrong places, this also brings issues with install directories of collections (COLLECTOR_CMAKE_INSTALL_PREFIX), so for now will be set to debug as default in collector.cmake, not tested though
-need to separate collections installations and builds cache for different target platforms, for something in the future be able to work with multiple platforms
-add option to collect something as add_subdirectory(), like collect_src(), but place code in something apart so can be unique to different compilers, example:
now is used
```
collect_src ( "https://github.com/walterschell/Lua.git" "v5.4.2" frittersFrontend )
add_subdirectory( ${_Lua.git_DIR} )
```
setting the variable FRESH_DOWNLOAD from cmake's cache, does not work
-have some issue resolving CL_ARGS, when calling external project add: if some flag is list appended to CL_ARGS, like -DGLAD_INSTALL=ON, the collection does not receive that flag, but in other variable put after CL_ARGS on External_project_Add's ARGS, that indeed works ok, maybe related to the compiler paths in CL_ARGS that are outside "", meaning that `Compiler selection and options forwarding` could be working wrong.
-add to doc the new functions collect_and_find() and append_var_to_cmake_args()
-