69 lines
2.5 KiB
CMake
69 lines
2.5 KiB
CMake
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) |