Skip to content

Commit ade3719

Browse files
authored
Fix cmake fut submodule builds (#21)
1 parent 3b09d63 commit ade3719

File tree

1 file changed

+59
-51
lines changed

1 file changed

+59
-51
lines changed

CMakeLists.txt

Lines changed: 59 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -43,67 +43,75 @@ set(CMAKE_C_FLAGS_DEBUG "-g -O0 -DDEBUG")
4343
set(CMAKE_C_STANDARD 17)
4444
set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE)
4545
add_library(tsschecker STATIC
46-
tsschecker/tsschecker.c
47-
tsschecker/download.c)
48-
add_library(tsschecker_shared SHARED
4946
tsschecker/tsschecker.c
50-
tsschecker/download.c
51-
tsschecker/common.c
52-
tsschecker/tss.c
53-
tsschecker/main.c)
47+
tsschecker/download.c)
48+
if(NOT DEFINED SUBPROJECT_BUILD)
49+
add_library(tsschecker_shared SHARED
50+
tsschecker/tsschecker.c
51+
tsschecker/download.c
52+
tsschecker/common.c
53+
tsschecker/tss.c
54+
tsschecker/main.c)
55+
endif()
5456
target_include_directories(tsschecker PRIVATE
55-
"${CMAKE_SOURCE_DIR}/dep_root/include/"
56-
tsschecker
57-
external/jssy/jssy)
58-
target_include_directories(tsschecker_shared PRIVATE
59-
"${CMAKE_SOURCE_DIR}/dep_root/include/"
60-
tsschecker
61-
external/jssy/jssy)
57+
"${CMAKE_SOURCE_DIR}/dep_root/include/"
58+
tsschecker
59+
external/jssy/jssy)
60+
if(NOT DEFINED SUBPROJECT_BUILD)
61+
target_include_directories(tsschecker_shared PRIVATE
62+
"${CMAKE_SOURCE_DIR}/dep_root/include/"
63+
tsschecker
64+
external/jssy/jssy)
65+
endif()
6266
target_link_directories(tsschecker PRIVATE
63-
"${CMAKE_SOURCE_DIR}/dep_root/lib/")
64-
target_link_directories(tsschecker_shared PRIVATE
65-
"${CMAKE_SOURCE_DIR}/dep_root/lib/"
66-
.)
67+
"${CMAKE_SOURCE_DIR}/dep_root/lib/")
68+
if(NOT DEFINED SUBPROJECT_BUILD)
69+
target_link_directories(tsschecker_shared PRIVATE
70+
"${CMAKE_SOURCE_DIR}/dep_root/lib/"
71+
.)
72+
endif()
6773
if(NOT DEFINED NO_PKGCFG AND NOT "$ENV{NO_PKGCFG}" MATCHES "1")
68-
find_package(PkgConfig REQUIRED)
69-
pkg_check_modules(DEPS REQUIRED
70-
libplist-2.0
71-
libirecovery-1.0
72-
libfragmentzip)
73-
target_include_directories(tsschecker PRIVATE "${DEPS_INCLUDE_DIRS}")
74+
find_package(PkgConfig REQUIRED)
75+
pkg_check_modules(DEPS REQUIRED
76+
libplist-2.0
77+
libirecovery-1.0
78+
libfragmentzip)
79+
target_include_directories(tsschecker PRIVATE "${DEPS_INCLUDE_DIRS}")
7480
else()
75-
target_link_libraries(tsschecker_shared PRIVATE
76-
curl
77-
plist-2.0
78-
irecovery-1.0
79-
fragmentzip
80-
usbmuxd-2.0
81-
imobiledevice-glue-1.0
82-
imobiledevice-1.0
83-
z
84-
jssy)
85-
endif()
86-
if("${CMAKE_HOST_SYSTEM_NAME}" MATCHES "Darwin")
87-
target_link_libraries(tsschecker_shared PRIVATE
88-
compression
89-
"-framework CoreFoundation"
90-
"-framework IOKit")
91-
endif()
92-
set_target_properties(tsschecker_shared PROPERTIES OUTPUT_NAME "tsschecker.0")
93-
if(NOT DEFINED VERSION_COMMIT_COUNT)
94-
execute_process(COMMAND git rev-list --count HEAD WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE VERSION_COMMIT_COUNT ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
95-
endif()
96-
if(NOT DEFINED VERSION_COMMIT_SHA)
97-
execute_process(COMMAND git rev-parse HEAD WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE VERSION_COMMIT_SHA ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
81+
if(NOT DEFINED SUBPROJECT_BUILD)
82+
target_link_libraries(tsschecker_shared PRIVATE
83+
curl
84+
plist-2.0
85+
irecovery-1.0
86+
fragmentzip
87+
usbmuxd-2.0
88+
imobiledevice-glue-1.0
89+
imobiledevice-1.0
90+
z
91+
jssy)
92+
if("${CMAKE_HOST_SYSTEM_NAME}" MATCHES "Darwin")
93+
target_link_libraries(tsschecker_shared PRIVATE
94+
compression
95+
"-framework CoreFoundation"
96+
"-framework IOKit")
97+
endif()
98+
endif()
9899
endif()
99-
add_definitions(
100-
-DTSSCHECKER_VERSION_COUNT="${VERSION_COMMIT_COUNT}"
101-
-DTSSCHECKER_VERSION_SHA="${VERSION_COMMIT_SHA}")
102100
add_definitions(-DTSSCHECKER_NOMAIN=1)
103101
project(tsschecker)
104102
add_subdirectory(external)
105103
if(NOT DEFINED SUBPROJECT_BUILD)
104+
set_target_properties(tsschecker_shared PROPERTIES OUTPUT_NAME "tsschecker.0")
105+
if(NOT DEFINED VERSION_COMMIT_COUNT)
106+
execute_process(COMMAND git rev-list --count HEAD WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE VERSION_COMMIT_COUNT ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
107+
endif()
108+
if(NOT DEFINED VERSION_COMMIT_SHA)
109+
execute_process(COMMAND git rev-parse HEAD WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE VERSION_COMMIT_SHA ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
110+
endif()
111+
add_definitions(
112+
-DTSSCHECKER_VERSION_COUNT="${VERSION_COMMIT_COUNT}"
113+
-DTSSCHECKER_VERSION_SHA="${VERSION_COMMIT_SHA}")
106114
install(TARGETS tsschecker
107-
DESTINATION "${CMAKE_INSTALL_PREFIX}/lib")
115+
DESTINATION "${CMAKE_INSTALL_PREFIX}/lib")
108116
endif()
109117

0 commit comments

Comments
 (0)