# 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)