forked from ddarriba/pll-modules
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
61 lines (49 loc) · 2.14 KB
/
CMakeLists.txt
File metadata and controls
61 lines (49 loc) · 2.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
cmake_minimum_required (VERSION 2.8.10...3.20 FATAL_ERROR)
project (Pll-modules)
if (NOT DEFINED PLLMODULES_LIBPLL_PATH)
set(PLLMODULES_LIBPLL_PATH "${CMAKE_CURRENT_SOURCE_DIR}/libs/libpll")
endif()
# Set BUILD_PLLMODULES_SHARED and BUILD_PLLMODULES_SHARED if both are unset
# Use BUILD_SHARED_LIBS to decide whether we should build shared or static libraries
if(NOT DEFINED BUILD_PLLMODULES_SHARED AND NOT DEFINED BUILD_PLLMODULES_STATIC)
set(BUILD_PLLMODULES_SHARED ${BUILD_SHARED_LIBS})
if (BUILD_SHARED_LIBS)
set(BUILD_PLLMODULES_STATIC FALSE)
else()
set(BUILD_PLLMODULES_STATIC TRUE)
endif()
endif()
if(BUILD_PLLMODULES_SHARED)
message(STATUS "pll-modules shared build enabled")
endif()
if(BUILD_PLLMODULES_STATIC)
message(STATUS "pll-modules static build enabled")
endif()
if (NOT PLLMODULES_SKIP_LIBPLL_BUILD)
set(BUILD_LIBPLL_SHARED ${BUILD_PLLMODULES_SHARED})
set(BUILD_LIBPLL_STATIC ${BUILD_PLLMODULES_STATIC})
add_subdirectory(${PLLMODULES_LIBPLL_PATH})
endif()
macro(add_pllmodules_lib target sources)
add_library(${target}_obj OBJECT ${sources})
set_property(TARGET ${target}_obj PROPERTY POSITION_INDEPENDENT_CODE 1)
target_include_directories(${target}_obj PRIVATE ${PLLMOD_INCLUDE_PATH})
if(BUILD_PLLMODULES_SHARED)
add_library(${target}_shared SHARED $<TARGET_OBJECTS:${target}_obj>)
set_target_properties(${target}_shared PROPERTIES OUTPUT_NAME "${target}")
target_link_libraries(${target}_shared ${PLL_LIBRARIES})
set(PLLMODULES_LIBRARIES
${target}_shared ${PLLMODULES_LIBRARIES}
CACHE INTERNAL "${PROJECT_NAME}: Libraries to link against")
endif()
if(BUILD_PLLMODULES_STATIC)
add_library(${target}_static STATIC $<TARGET_OBJECTS:${target}_obj>)
set_target_properties(${target}_static PROPERTIES OUTPUT_NAME "${target}")
target_link_libraries(${target}_static ${PLL_LIBRARIES})
set(PLLMODULES_LIBRARIES
${target}_static ${PLLMODULES_LIBRARIES}
CACHE INTERNAL "${PROJECT_NAME}: Libraries to link against")
endif()
endmacro()
add_subdirectory(src)
set(PLLMOD_EXPORTED_INCLUDE_PATH ${PLLMOD_EXPORTED_INCLUDE_PATH} ${PLL_EXPORTED_INCLUDE_PATH} PARENT_SCOPE)