﻿set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)


# "ON" = build Option 1, "OFF" = build Option 2.
option(BUILD_ASSIGNMENT_03_OPTION_1 "Build Assignment Option 1 (Standard)" ON)

add_executable(Assignment-03
    main.cpp
        TBST.cpp
        TBST.h
        TEmployee.h
        TAVL.cpp
        TAVL.h
)

# Conditionally add the correct source file
if(BUILD_ASSIGNMENT_03_OPTION_1)
    # If ON, add option1.cpp and define 'ASSIGNMENT_OPTION=1' for C++
    target_sources(Assignment-03
      PRIVATE
        option1.cpp 
        option1.h
    )
    target_compile_definitions(Assignment-03 PRIVATE "ASSIGNMENT_03_OPTION=1")
else()
    # If OFF, add option2.cpp and define 'ASSIGNMENT_OPTION=2' for C++
    target_sources(Assignment-03
      PRIVATE
        option2.cpp
        option2.h
    )
    target_compile_definitions(Assignment-03 PRIVATE "ASSIGNMENT_03_OPTION=2")
endif()
target_link_libraries(Assignment-03
    PRIVATE
    SharedLib
)


add_custom_command(TARGET Assignment-03 POST_BUILD
  # Add a custom command here if needed
  COMMAND ${CMAKE_COMMAND} -E echo "Assignment-03 post-build step"
)
