106 lines
3.3 KiB
CMake
106 lines
3.3 KiB
CMake
project(aisdecoder)
|
|
cmake_minimum_required(VERSION 2.8)
|
|
INCLUDE(CheckIncludeFiles)
|
|
|
|
set(STATIC_LIB "${PROJECT_NAME}_static_lib")
|
|
set(DYNAMIC_LIB "${PROJECT_NAME}_dynamic_lib")
|
|
|
|
macro(get_WIN32_WINNT version)
|
|
if (WIN32 AND CMAKE_SYSTEM_VERSION)
|
|
set(ver ${CMAKE_SYSTEM_VERSION})
|
|
string(REPLACE "." "" ver ${ver})
|
|
string(REGEX REPLACE "([0-9])" "0\\1" ver ${ver})
|
|
set(${version} "0x${ver}")
|
|
endif()
|
|
endmacro()
|
|
|
|
if(NOT WIN32)
|
|
CHECK_INCLUDE_FILES(alsa/asoundlib.h HAVE_ALSA)
|
|
CHECK_INCLUDE_FILES(pulse/pulseaudio.h HAVE_PULSEAUDIO)
|
|
else()
|
|
get_WIN32_WINNT(ver)
|
|
if(${CMAKE_SYSTEM_VERSION} LESS 5.1)
|
|
MESSAGE(FATAL_ERROR "Windows XP or higher is required")
|
|
endif()
|
|
add_definitions(-D_WIN32_WINNT=${ver})
|
|
endif()
|
|
|
|
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
|
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
|
|
|
|
if("${CMAKE_BUILD_TYPE}" STREQUAL "")
|
|
set(CMAKE_BUILD_TYPE "Debug")
|
|
endif()
|
|
|
|
if(NOT $ENV{CMAKE_BUILD_TYPE} STREQUAL "")
|
|
set(CMAKE_BUILD_TYPE $ENV{CMAKE_BUILD_TYPE})
|
|
endif()
|
|
|
|
string(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE)
|
|
MESSAGE(STATUS "Build configuration: ${CMAKE_BUILD_TYPE}")
|
|
|
|
set(CMAKE_C_FLAGS_DEBUG "-g -Wall")
|
|
set(CMAKE_C_FLAGS_RELEASE "-O3 -Wall")
|
|
|
|
if(${CMAKE_BUILD_TYPE} STREQUAL "RELEASE")
|
|
set(CMAKE_EXE_LINKER_FLAGS "-s")
|
|
endif()
|
|
|
|
if(NOT WIN32)
|
|
if(NOT HAVE_ALSA AND NOT HAVE_PULSEAUDIO)
|
|
MESSAGE(FATAL_ERROR "The development files for ALSA or PulseAudio are required - libasound-dev, libpulse-dev")
|
|
endif()
|
|
endif()
|
|
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/lib)
|
|
|
|
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src SRC_LIST)
|
|
set(SRC_LIST_LIB "${CMAKE_CURRENT_SOURCE_DIR}/src/sounddecoder.c")
|
|
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src/lib SRC_LIST_LIB)
|
|
|
|
if(NOT WIN32)
|
|
if(HAVE_PULSEAUDIO)
|
|
aux_source_directory(src/lib/pulseaudio SRC_LIST_LIB)
|
|
set(L_PULSE pulse-simple)
|
|
else()
|
|
message(WARNING "You do not have the development files for pulseaudio (DISABLE).")
|
|
endif()
|
|
|
|
if(HAVE_ALSA)
|
|
aux_source_directory(src/lib/alsaaudio SRC_LIST_LIB)
|
|
set(L_ALSA asound)
|
|
else()
|
|
message(WARNING "You do not have the development files for ASLA (DISABLE).")
|
|
endif()
|
|
else()
|
|
aux_source_directory(src/lib/winmmaudio SRC_LIST_LIB)
|
|
endif()
|
|
|
|
add_library(${DYNAMIC_LIB} SHARED ${SRC_LIST_LIB})
|
|
set_target_properties(${DYNAMIC_LIB} PROPERTIES OUTPUT_NAME ${PROJECT_NAME})
|
|
|
|
add_library(${STATIC_LIB} STATIC ${SRC_LIST_LIB})
|
|
set_target_properties(${STATIC_LIB} PROPERTIES OUTPUT_NAME ${PROJECT_NAME})
|
|
|
|
if(WIN32)
|
|
target_link_libraries(${DYNAMIC_LIB} winmm)
|
|
else()
|
|
set(MYLIB_VERSION_MAJOR 1)
|
|
set(MYLIB_VERSION_MINOR 0)
|
|
set(MYLIB_VERSION_PATCH 0)
|
|
set(MYLIB_VERSION_STRING ${MYLIB_VERSION_MAJOR}.${MYLIB_VERSION_MINOR}.${MYLIB_VERSION_PATCH})
|
|
set_target_properties(${DYNAMIC_LIB}
|
|
PROPERTIES
|
|
VERSION ${MYLIB_VERSION_STRING}
|
|
SOVERSION ${MYLIB_VERSION_MAJOR})
|
|
endif()
|
|
|
|
add_executable(${PROJECT_NAME} ${SRC_LIST})
|
|
target_link_libraries(${PROJECT_NAME} ${STATIC_LIB})
|
|
|
|
if(NOT WIN32)
|
|
target_link_libraries(${PROJECT_NAME} ${L_ALSA} ${L_PULSE})
|
|
else()
|
|
target_link_libraries(${PROJECT_NAME} winmm ws2_32)
|
|
endif()
|