From a60a14b6b692f835237cdd15530057007a5d9ebb Mon Sep 17 00:00:00 2001 From: Max <51083570+DRdrProfessor@users.noreply.github.com> Date: Mon, 20 Nov 2023 15:56:38 +0100 Subject: [PATCH] Configuring CMake, project structure --- .gitignore | 4 ++++ CMakeLists.txt | 13 +++++++++---- examples/CMakeLists.txt | 3 +++ {tests => examples}/HelloWorld/CMakeLists.txt | 0 examples/HelloWorld/hello | Bin 0 -> 13808 bytes {tests => examples}/HelloWorld/main.c | 0 tests/CMakeLists.txt | 3 --- 7 files changed, 16 insertions(+), 7 deletions(-) create mode 100644 examples/CMakeLists.txt rename {tests => examples}/HelloWorld/CMakeLists.txt (100%) create mode 100755 examples/HelloWorld/hello rename {tests => examples}/HelloWorld/main.c (100%) delete mode 100644 tests/CMakeLists.txt diff --git a/.gitignore b/.gitignore index 5f143dd..480e255 100755 --- a/.gitignore +++ b/.gitignore @@ -72,6 +72,10 @@ lib/ LIB/ out/ +# Tests +[Tt]est/ +[Tt]ests/ + # IDE .vs/ .vscode/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 41bb90a..e3e4e19 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,8 +7,10 @@ project("Based" LANGUAGES C ASM) # ============================================= #unset(DOCUMENTATION CACHE) #unset(INTERNAL_DOC, CACHE) +#unset(BUILD_EXAMPLES, CACHE) option(DOCUMENTATION "Enable to generate ducumentation." OFF) option(INTERNAL_DOC "Enable to generate internal & public documentaion. Disable to only generate public documentation" OFF) +option(BUILD_EXAMPLES "Build tests." OFF) # ============================================= # Policies @@ -18,6 +20,7 @@ cmake_policy(SET CMP0076 NEW) # ============================================= # Compiler # ============================================= +set(CMAKE_BUILD_TYPE Debug) if(CMAKE_C_COMPILER_ID STREQUAL "GNU") # GNUCC # Add linker options. add_link_options(-nostdlib -nodefaultlibs -nostdinc -lgcc) # -z noexecstack @@ -39,25 +42,27 @@ endif() # ============================================= # Directories # ============================================= -set(PROJ_BUILD_DIR ${CMAKE_BINARY_DIR}) +set(PROJ_BUILD_DIR ${CMAKE_SOURCE_DIR}/build) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJ_BUILD_DIR}/lib) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJ_BUILD_DIR}/bin) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJ_BUILD_DIR}/bin) -set(PROJ_REL_BUILD_DIR ${CMAKE_BINARY_DIR}/release) +set(PROJ_REL_BUILD_DIR ${PROJ_BUILD_DIR}/release) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${PROJ_REL_BUILD_DIR}/lib) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${PROJ_REL_BUILD_DIR}/bin) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJ_REL_BUILD_DIR}/bin) -set(PROJ_DEB_BUILD_DIR ${CMAKE_BINARY_DIR}/debug) +set(PROJ_DEB_BUILD_DIR ${PROJ_BUILD_DIR}/debug) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${PROJ_DEB_BUILD_DIR}/lib) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${PROJ_DEB_BUILD_DIR}/bin) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${PROJ_DEB_BUILD_DIR}/bin) add_subdirectory(src) add_subdirectory(include) -add_subdirectory(tests) +if (BUILD_EXAMPLES) +add_subdirectory(examples) +endif(BUILD_EXAMPLES) if (DOCUMENTATION) add_subdirectory(doc) endif(DOCUMENTATION) \ No newline at end of file diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt new file mode 100644 index 0000000..f5f5e8b --- /dev/null +++ b/examples/CMakeLists.txt @@ -0,0 +1,3 @@ +# CMakeLists examples directory + +add_subdirectory(HelloWorld) \ No newline at end of file diff --git a/tests/HelloWorld/CMakeLists.txt b/examples/HelloWorld/CMakeLists.txt similarity index 100% rename from tests/HelloWorld/CMakeLists.txt rename to examples/HelloWorld/CMakeLists.txt diff --git a/examples/HelloWorld/hello b/examples/HelloWorld/hello new file mode 100755 index 0000000000000000000000000000000000000000..9ada1eeeeaaf77cf6ffdb9c31cf71095771caec5 GIT binary patch literal 13808 zcmeHO-)kII6uz6ZNo-BK7KLCG2F!yBJG+~fu-Kv-@@ooB(X@ezEyL{Y=niCe!|p6@ z1QB0^D20G8{uw^_pa>G^Lqzc1M_-CQC`Pb-vACXd=X}d{*hmybk#k_?yZ4;)-5=k~ z+>qHj@2p%|9m`}4Y}~wPxOO_5c*+te%u9iwY)WRD&S%XTGePwe)|bS~2~ae#Z^j zlZ31^3_KJb5ImOa&+wopYr;oK=AXub^ao7y>cUIoobZ6$2ivu~aqX}4_pn>3aA3A z!2eBwO>g(^r#z`!cf8_{-UpZFyxZ~Ilz033gRFP3{~blVg9A=Dd-4}f-hKOlx7$7R zb~nG@yLE>HYN~)LpbDr0s(>n>3aA3AfGVI0r~;~hD)1jyATv9Dk$-EoKhq!f`z0#p z2ye)^`8P|p%v&2K)5~UNADx`qqaP=k!^i$l{r+iASUi(`Z)|CLVwDmkc8Tz7ik};f zuP1SKsi^|0fGVI0r~;~hDxeCe0;+&2pbDr0|CR#ScME)41~M&p@3(%7i+i$P+U_Z* z`j=A29_5dveoA<*p#5K&$}>`bLJ;t4KWU%p*rJWlKZ0vZOD{Oj(vIZkoZ@+R-Yq)w zh57S^Qla?A-LXC=%+LLF77u!qpYulfA0vOpoHE!K&v|T5+B3E0*uvnHqtZDuX>zi` z+rC>MUzv_9`SINXRjpm5bC%k-3F2c|ql4SQzI$AkE94)Qf9(jrX#`Qzt(tB#>a}Ak z_{*-)MH-?RINBY{xr8u1Ytez3WlU*o1n}sT;Sp)1*cd zjN8VI!(MFMuf z0CDjBIc%KEHjIP0Cn0-wgzrcq|GnTbpnqJyN63e*Xl^N5cOQ IiGpeV@1M``;Q#;t literal 0 HcmV?d00001 diff --git a/tests/HelloWorld/main.c b/examples/HelloWorld/main.c similarity index 100% rename from tests/HelloWorld/main.c rename to examples/HelloWorld/main.c diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt deleted file mode 100644 index 382b37e..0000000 --- a/tests/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -# CMakeLists test directory - -add_subdirectory(HelloWorld) \ No newline at end of file