h_sw_registro/CMakeLists.txt

50 lines
1.6 KiB
CMake
Raw Permalink Normal View History

2025-07-26 02:32:02 +00:00
# CMake最低版本要求
cmake_minimum_required(VERSION 3.10)
# 项目名称
project(SoftwareRegistration CXX)
# 设置C++标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# 添加头文件目录
include_directories(include lib)
# 添加源文件
aux_source_directory(src SRC_FILES)
# --- 生成主程序 (用于生成密钥) ---
add_executable(machine_code_generator WIN32 src/generator_gui.cpp)
target_link_libraries(machine_code_generator PRIVATE RegistrationDLL)
# --- 生成DLL库 ---
add_library(RegistrationDLL SHARED src/registration_api.cpp src/machine_code.cpp)
target_include_directories(RegistrationDLL PRIVATE include lib)
if(WIN32)
target_link_libraries(RegistrationDLL PRIVATE wbemuuid ole32 oleaut32)
endif()
# 定义导出宏
target_compile_definitions(RegistrationDLL PRIVATE REGISTRATION_EXPORTS)
# --- 生成GUI应用程序 ---
add_executable(RegistrationApp WIN32 src/gui.cpp)
target_link_libraries(RegistrationApp PRIVATE RegistrationDLL)
# --- 生成测试程序 ---
add_executable(test_license src/test_license.cpp)
target_link_libraries(test_license PRIVATE RegistrationDLL)
# --- 生成仅验证程序 ---
add_executable(validate_only src/validate_only.cpp)
target_link_libraries(validate_only PRIVATE RegistrationDLL)
# --- 生成有效许可证文件程序 ---
add_executable(generate_valid src/generate_valid.cpp)
target_link_libraries(generate_valid PRIVATE RegistrationDLL)
# 将生成的文件输出到 build/bin 目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)