CMakeLists.txt 1.0 KB

1234567891011121314151617181920212223242526272829
  1. cmake_minimum_required(VERSION 3.5)
  2. # 获取上级目录名做为库名
  3. get_filename_component(CURRENT_DIR ${CMAKE_CURRENT_SOURCE_DIR} ABSOLUTE)
  4. get_filename_component(LUA_DIR ${CMAKE_CURRENT_BINARY_DIR} ABSOLUTE)
  5. get_filename_component(LIBRARY_NAME ${CURRENT_DIR} NAME)
  6. file(GLOB SOURCE_LIB_FILES "${PROJECT_SOURCE_DIR}/3rdparty/lua/*.c")
  7. file(GLOB SOURCE_FILES "${PROJECT_SOURCE_DIR}/3rdparty/lua/luac/*.c")
  8. # 创建LUAC
  9. add_executable(${LIBRARY_NAME} WIN32 ${SOURCE_FILES} ${SOURCE_LIB_FILES})
  10. # 设置 Windows 应用程序类型
  11. if (WIN32)
  12. set_target_properties(${LIBRARY_NAME} PROPERTIES WIN32_EXECUTABLE FALSE)
  13. endif()
  14. # 将包含目录与目标相关联,这样只有在编译此库时才会包含这些目录
  15. target_include_directories(${LIBRARY_NAME} PUBLIC "${PROJECT_SOURCE_DIR}/3rdparty/lua")
  16. if(MSVC)
  17. target_link_libraries(${LIBRARY_NAME} PRIVATE kernel32.lib Shell32.lib)
  18. else()
  19. target_link_libraries(${LIBRARY_NAME} PRIVATE m)
  20. endif()
  21. # 设置 Visual Studio 中的文件夹
  22. set_property(TARGET ${LIBRARY_NAME} PROPERTY FOLDER "3rdparty")