moved libs to the lib directory
This commit is contained in:
219
lib/x502api-1.1.34/CMakeLists.txt
Normal file
219
lib/x502api-1.1.34/CMakeLists.txt
Normal file
@ -0,0 +1,219 @@
|
||||
cmake_minimum_required(VERSION 2.8.12)
|
||||
|
||||
project(x502api C)
|
||||
set(PROJECT_VARNAME_PREFIX X502API)
|
||||
|
||||
|
||||
set(X502API_VER_MAJOR 1)
|
||||
set(X502API_VER_MINOR 1)
|
||||
set(X502API_VER_PATCH 34)
|
||||
set(X502API_VERSION ${X502API_VER_MAJOR}.${X502API_VER_MINOR}.${X502API_VER_PATCH})
|
||||
|
||||
add_definitions(-DX502API_VER_MAJOR=${X502API_VER_MAJOR} -DX502API_VER_MINOR=${X502API_VER_MINOR} -DX502API_VER_PATCH=${X502API_VER_PATCH})
|
||||
|
||||
option(X502API_ENABLE_DEV_L502 "Enable L-502 device support" ON)
|
||||
option(X502API_ENABLE_DEV_E502 "Enable E-502 device support" ON)
|
||||
|
||||
|
||||
set(X502API_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/include)
|
||||
set(X502API_LIB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib)
|
||||
set(LTIMER_DIR ${X502API_LIB_DIR}/ltimer)
|
||||
set(LCSPEC_DIR ${X502API_LIB_DIR}/lcspec)
|
||||
set(OSSPEC_DIR ${X502API_LIB_DIR}/osspec)
|
||||
set(X502_LIBS_CMAKE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/x502libs.cmake)
|
||||
|
||||
if(NOT X502_INSTALL_LIB)
|
||||
set(X502_INSTALL_LIB lib)
|
||||
endif(NOT X502_INSTALL_LIB)
|
||||
if (NOT X502_INSTALL_INCLUDE)
|
||||
set(X502_INSTALL_INCLUDE include)
|
||||
endif(NOT X502_INSTALL_INCLUDE)
|
||||
set(X502_INSTALL_PASCAL pas)
|
||||
|
||||
|
||||
file(MAKE_DIRECTORY ${X502API_INCLUDE_DIR})
|
||||
set(X502API_PREPARE_HEADERS ON)
|
||||
|
||||
#для GCC устанавливаем повышенный уроень предупреждения компилятора
|
||||
if(CMAKE_COMPILER_IS_GNUCC)
|
||||
|
||||
include(CheckCCompilerFlag)
|
||||
set(CHECK_FLAGS
|
||||
-Wall -Wformat-security -Wundef -Wshadow -Wpointer-arith -Wcast-align
|
||||
-Wwrite-strings -Wsign-compare -Waggregate-return -Winline -Wno-aggregate-return
|
||||
-Werror=implicit-int -Werror=implicit-function-declaration -Werror=strict-prototypes -Werror=return-type
|
||||
-Wextra -Winit-self -Wstrict-aliasing -Wfloat-equal
|
||||
-Wunsafe-loop-optimizations -Wlogical-op
|
||||
-Wno-unused-parameter -Wno-unused-variable)
|
||||
foreach(CUR_FLAG ${CHECK_FLAGS})
|
||||
# для корректного названия переменной флага заменяем недопустимые
|
||||
# символы - и = в названии флага на _
|
||||
string(REGEX REPLACE "-|=" "_" FLAG_VARNAME FLAG_${CUR_FLAG}_ENABLE)
|
||||
|
||||
CHECK_C_COMPILER_FLAG(${CUR_FLAG} ${FLAG_VARNAME})
|
||||
if(${FLAG_VARNAME})
|
||||
set(COMPILE_FLAGS "${COMPILE_FLAGS} ${CUR_FLAG}")
|
||||
endif()
|
||||
endforeach(CUR_FLAG)
|
||||
|
||||
|
||||
|
||||
CHECK_C_COMPILER_FLAG(-Wl,--no-undefined FLAG_NO_UNDEFINED)
|
||||
if(FLAG_NO_UNDEFINED)
|
||||
set(LINK_FLAGS "${LINK_FLAGS} -Wl,--no-undefined")
|
||||
else(FLAG_NO_UNDEFINED)
|
||||
message(STATUS "LINKER FLAG -Wl,--no-undefined WAS NOT FOUND!")
|
||||
endif(FLAG_NO_UNDEFINED)
|
||||
|
||||
CHECK_C_COMPILER_FLAG(-fvisibility=hidden FLAG_FVISIBILITY)
|
||||
if (FLAG_FVISIBILITY)
|
||||
set(COMPILE_FLAGS "${COMPILE_FLAGS} -fvisibility=hidden")
|
||||
endif(FLAG_FVISIBILITY)
|
||||
endif(CMAKE_COMPILER_IS_GNUCC)
|
||||
|
||||
#при сборке MSVC компилируем runtime-библиотеку статически, чтобы не зависеть от версии
|
||||
if(MSVC)
|
||||
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
||||
foreach(flag_var
|
||||
CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
|
||||
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO)
|
||||
if(${flag_var} MATCHES "/MD")
|
||||
string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
|
||||
endif(${flag_var} MATCHES "/MD")
|
||||
endforeach(flag_var)
|
||||
|
||||
#убираем флаг /INCREMENTAL, так как в MSVC с ним могут быть
|
||||
#внутренние ошибки линковщика
|
||||
foreach(flag_var
|
||||
CMAKE_SHARED_LINKER_FLAGS
|
||||
CMAKE_SHARED_LINKER_FLAGS_DEBUG
|
||||
CMAKE_SHARED_LINKER_FLAGS_RELEASE
|
||||
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
|
||||
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_SHARED_EXE_FLAGS
|
||||
CMAKE_SHARED_EXE_FLAGS_DEBUG
|
||||
CMAKE_SHARED_EXE_FLAGS_RELEASE
|
||||
CMAKE_SHARED_EXE_FLAGS_MINSIZEREL
|
||||
CMAKE_SHARED_EXE_FLAGS_RELWITHDEBINFO)
|
||||
if(${flag_var} MATCHES "/INCREMENTAL:YES")
|
||||
string(REGEX REPLACE "/INCREMENTAL:YES" "/INCREMENTAL:NO" ${flag_var} "${${flag_var}}")
|
||||
endif(${flag_var} MATCHES "/INCREMENTAL:YES")
|
||||
endforeach(flag_var)
|
||||
endif(MSVC)
|
||||
|
||||
|
||||
include(${LTIMER_DIR}/ltimer.cmake)
|
||||
set(OSSPEC_USE_MUTEX ON)
|
||||
set(OSSPEC_USE_THREADS OFF)
|
||||
set(OSSPEC_USE_EVENTS OFF)
|
||||
include(${OSSPEC_DIR}/osspec.cmake)
|
||||
set(X502API_COMPILE_DEFINITIONS ${LTIMER_DEFINITIONS} ${OSSPEC_DEFINITIONS})
|
||||
|
||||
set(SOURCES
|
||||
src/x502api.c
|
||||
src/x502api_config.c
|
||||
src/x502api_errs.c
|
||||
src/x502api_streams.c
|
||||
src/x502api_async.c
|
||||
src/x502api_bf.c
|
||||
src/x502api_eeprom.c
|
||||
src/x502tstp.c
|
||||
lib/crc/fast_crc.c
|
||||
${OSSPEC_SOURCES}
|
||||
${LTIMER_SOURCES})
|
||||
|
||||
|
||||
set(SETUP_HEADERS
|
||||
src/lcard_pstdint.h
|
||||
src/x502api.h
|
||||
src/x502tstp.h
|
||||
)
|
||||
|
||||
set(HEADERS
|
||||
src/l502_bf_cmd_defs.h
|
||||
src/lboot_req.h
|
||||
src/x502_fpga_regs.h
|
||||
src/x502api_private.h
|
||||
src/x502_eeprom.h
|
||||
src/osspec_cfg.h
|
||||
src/fast_crc_cfg.h
|
||||
${OSSPEC_HEADERS}
|
||||
${LTIMER_HEADERS})
|
||||
|
||||
set(LIBS
|
||||
${LTIMER_LIBS}
|
||||
${OSSPEC_LIBS})
|
||||
|
||||
|
||||
include_directories(src lib/crc ${X502API_LIB_DIR}/osspec)
|
||||
|
||||
|
||||
include(${X502_LIBS_CMAKE_FILE})
|
||||
|
||||
|
||||
add_subdirectory(devs)
|
||||
|
||||
if(BUILD_EXAMPLES OR BUILD_ALL)
|
||||
add_subdirectory(examples/c)
|
||||
endif(BUILD_EXAMPLES OR BUILD_ALL)
|
||||
|
||||
if(BUILD_TESTS)
|
||||
add_subdirectory(tests)
|
||||
endif(BUILD_TESTS)
|
||||
|
||||
if(LPCIE_DOCGEN_DIR)
|
||||
include(${LPCIE_DOCGEN_DIR}/LDoxyToPdf.cmake)
|
||||
set(PDF_IMG_FILES doc/images/adc_frame.jpeg)
|
||||
set(DOC_DOXYGEN_PRJ_FILE doc/Doxyfile.in)
|
||||
set(DOXYGEN_INPUT_FILES devs/l502/l502api.h devs/e502/e502api.h src/x502api.h src/x502tstp.h doc/mainpage.md doc/about.md doc/setup.md doc/gen_descr.md doc/tstp_descr.md)
|
||||
ADD_DOXY_TO_PDF_TARGET(x502api)
|
||||
endif(LPCIE_DOCGEN_DIR)
|
||||
|
||||
#цели для сборки пакетов
|
||||
if(UNIX AND CMAKE_EXT_INCLUDE_DIR)
|
||||
set(PACKAGE_NAME ${PROJECT_NAME})
|
||||
set(PACKAGE_VERSION ${X502API_VERSION})
|
||||
set(PACKAGE_ARCH_INSTALL_FILE ${PACKAGE_NAME}.install)
|
||||
include(${CMAKE_EXT_INCLUDE_DIR}/packages/packages.cmake)
|
||||
endif(UNIX AND CMAKE_EXT_INCLUDE_DIR)
|
||||
|
||||
|
||||
|
||||
if(WIN32 AND LCARD_SDK_MAKE_INSTALLER)
|
||||
set(X502API_CONVERTED_SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/conv_src)
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/x64)
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/x86)
|
||||
file(MAKE_DIRECTORY ${X502API_CONVERTED_SOURCE_DIR})
|
||||
|
||||
string(REGEX REPLACE "/" "\\\\" ICONV_EXEC ${ICONV_EXEC})
|
||||
string(REGEX REPLACE "/" "\\\\" X502API_CONVERTED_SOURCE_DIR ${X502API_CONVERTED_SOURCE_DIR})
|
||||
set(X502API_ORIG_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
string(REGEX REPLACE "/" "\\\\" X502API_ORIG_SOURCE_DIR ${X502API_ORIG_SOURCE_DIR})
|
||||
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/win_install/conv_src_cp1251.bat.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/conv_src_cp1251.bat @ONLY)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/win_install/make64.bat.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/x64/make.bat @ONLY)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/win_install/make32.bat.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/x86/make.bat @ONLY)
|
||||
add_custom_target(convert_src
|
||||
COMMAND cmd /c conv_src_cp1251.bat
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
add_custom_target(x502api_64
|
||||
COMMAND cmd /c make.bat
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/x64
|
||||
DEPENDS convert_src)
|
||||
|
||||
#x86 версию собираем 2008 студией (Express) для совместимости с Win2000
|
||||
#set(VS2008_SETENV "${VS2008_DIR}/vcvarsall.bat")
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/x86)
|
||||
add_custom_target(x502api_32
|
||||
COMMAND cmd /c make.bat
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/x86
|
||||
DEPENDS convert_src
|
||||
)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user