12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- CMAKE_MINIMUM_REQUIRED(VERSION 3.16)
- SET(CMAKE_C_STANDARD 11)
- PROJECT(aFun LANGUAGES C)
- SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
- SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/lib) # 设置输出路径
- SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH})
- SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH})
- SET(BUILD_SHARED_LIBS TRUE) # 默认编译动态库
- IF(Build_Memory)
- ADD_DEFINITIONS(-DBUILD_MEM=1)
- ENDIF()
- IF(MSVC)
- SET(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
- MESSAGE("Build with MSVC")
- ELSE()
- ADD_COMPILE_OPTIONS(-fPIC) # 启用fPIC参数
- MESSAGE("Not build with MSVC")
- ENDIF()
- SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") # 设置安装路径
- IF (build_with_rpath)
- SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
- MESSAGE("SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) success!")
- ENDIF ()
- MESSAGE("CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}")
- MESSAGE("CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}")
- INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include) # 添加include路径
- INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include/cJson)
- if (MSVC)
- INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include/dlfcn)
- endif ()
- ADD_DEFINITIONS(-DCC="${CMAKE_C_COMPILER}")
- ADD_DEFINITIONS(-DCXXC="${CMAKE_CXX_COMPILER}")
- ADD_DEFINITIONS(-DSRC_PATH="${CMAKE_SOURCE_DIR}")
- ADD_SUBDIRECTORY(src)
- IF(ENABLE_aFunTEST)
- ENABLE_TESTING()
- ADD_SUBDIRECTORY(test)
- MESSAGE("Enable Test Success!")
- ENDIF()
- INSTALL(TARGETS aFun)
|