46 lines
1.1 KiB
CMake
46 lines
1.1 KiB
CMake
|
|
cmake_minimum_required(VERSION 3.14)
|
||
|
|
project(MallSystem VERSION 1.0.0 LANGUAGES CXX)
|
||
|
|
|
||
|
|
set(CMAKE_CXX_STANDARD 17)
|
||
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||
|
|
|
||
|
|
# MSVC UTF-8 support
|
||
|
|
if (MSVC)
|
||
|
|
add_compile_options(/utf-8)
|
||
|
|
endif()
|
||
|
|
|
||
|
|
# ============================================================
|
||
|
|
# Main executable
|
||
|
|
# ============================================================
|
||
|
|
set(SOURCES
|
||
|
|
src/main.cpp
|
||
|
|
src/app.cpp
|
||
|
|
src/product.cpp
|
||
|
|
src/shopping_cart.cpp
|
||
|
|
src/order.cpp
|
||
|
|
)
|
||
|
|
|
||
|
|
set(HEADERS
|
||
|
|
include/app.hpp
|
||
|
|
include/product.hpp
|
||
|
|
include/shopping_cart.hpp
|
||
|
|
include/order.hpp
|
||
|
|
)
|
||
|
|
|
||
|
|
add_executable(mall ${SOURCES} ${HEADERS})
|
||
|
|
target_include_directories(mall PRIVATE include)
|
||
|
|
|
||
|
|
# ============================================================
|
||
|
|
# Test executable (uses plain assert, no external dependency)
|
||
|
|
# ============================================================
|
||
|
|
set(TEST_SOURCES
|
||
|
|
tests/basic_test.cpp
|
||
|
|
src/app.cpp
|
||
|
|
src/product.cpp
|
||
|
|
src/shopping_cart.cpp
|
||
|
|
src/order.cpp
|
||
|
|
)
|
||
|
|
|
||
|
|
add_executable(mall_test ${TEST_SOURCES} ${HEADERS})
|
||
|
|
target_include_directories(mall_test PRIVATE include)
|