cmake_minimum_required(VERSION 3.10) project(MyProject) # Set the C++ standard set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED True) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb") include(ExternalProject) ExternalProject_Add( sqlite PREFIX "" URL https://www.sqlite.org/2025/sqlite-amalgamation-3480000.zip URL_HASH SHA256=d9a15a42db7c78f88fe3d3c5945acce2f4bfe9e4da9f685cd19f6ea1d40aa884 DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/downloads SOURCE_DIR ${CMAKE_BINARY_DIR}/sqlite CONFIGURE_COMMAND "" BUILD_COMMAND ${CMAKE_C_COMPILER} -c ${CMAKE_BINARY_DIR}/sqlite/sqlite3.c -o ${CMAKE_BINARY_DIR}/sqlite-prefix/sqlite3.o -DSQLITE_DQS=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_USE_ALLOCA -DSQLITE_OMIT_AUTOINIT -DSQLITE_STRICT_SUBTYPE=1 -DSQLITE_THREADSAFE=2 && ${CMAKE_AR} rcs ${CMAKE_BINARY_DIR}/sqlite-prefix/libsqlite3.a ${CMAKE_BINARY_DIR}/sqlite-prefix/sqlite3.o INSTALL_COMMAND "" ) ExternalProject_Add( raylib PREFIX "" URL https://github.com/raysan5/raylib/releases/download/5.5/raylib-5.5_linux_amd64.tar.gz URL_HASH SHA256=3d95ef03d5b38dfa55c0a16ca122d382134b078f0e5b270b52fe7eae0549c000 DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/downloads SOURCE_DIR ${CMAKE_BINARY_DIR}/raylib CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" ) add_executable(app app/src/main.cpp app/src/App.cpp app/src/DnaStore.cpp app/src/sys.cpp shared/src/canvas/BackGround.cpp shared/src/canvas/BackGroundColors.cpp shared/src/canvas/Canvas.cpp shared/src/canvas/Circle.cpp shared/src/canvas/Tree.cpp shared/src/values/Dna.cpp shared/src/values/DnaManager.cpp shared/src/values/mrand.cpp shared/src/TcpSocket.cpp ) # Add include directories target_include_directories(app PRIVATE app/inc shared/inc ${CMAKE_BINARY_DIR}/raylib/include) target_link_libraries(app ${CMAKE_BINARY_DIR}/raylib/lib/libraylib.a) add_executable(server server/src/server.cpp server/src/sql.cpp server/src/checker.cpp shared/src/TcpSocket.cpp shared/src/values/Dna.cpp shared/src/values/DnaManager.cpp shared/src/values/mrand.cpp ) # Add include directories target_include_directories(server PRIVATE server/inc shared/inc ${CMAKE_BINARY_DIR}/sqlite/) target_link_libraries(server PRIVATE pthread dl m ${CMAKE_BINARY_DIR}/sqlite-prefix/libsqlite3.a)