Skip to content

Commit

Permalink
Merge pull request #146 from kratz00/cmake
Browse files Browse the repository at this point in the history
Various CMake improvements
  • Loading branch information
twogood authored Mar 31, 2022
2 parents ee757c3 + c9a3bda commit 4852238
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 49 deletions.
24 changes: 12 additions & 12 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,24 +31,24 @@ check_symbol_exists(iconv iconv.h HAVE_ICONV)
set(SIZE_FORMAT "zi")
check_c_source_compiles("#include <stdio.h>\nint main(int argc, char **argv) { size_t value = 0; printf(\"%${SIZE_FORMAT}\", value); return 0; }" SIZE_FORMAT_ZI)
if(NOT SIZE_FORMAT_ZI)
set(SIZE_FORMAT "i")
check_c_source_compiles("#include <stdio.h>\nint main(int argc, char **argv) { size_t value = 0; printf(\"%${SIZE_FORMAT}\", value); return 0; }" SIZE_FORMAT_I)
if(NOT SIZE_FORMAT_I)
set(SIZE_FORMAT "li")
check_c_source_compiles("#include <stdio.h>\nint main(int argc, char **argv) { size_t value = 0; printf(\"%${SIZE_FORMAT}\", value); return 0; }" SIZE_FORMAT_LI)
if(NOT SIZE_FORMAT_LI)
message(FATAL_ERROR "You must be using a really weird platform!")
endif()
endif()
set(SIZE_FORMAT "i")
check_c_source_compiles("#include <stdio.h>\nint main(int argc, char **argv) { size_t value = 0; printf(\"%${SIZE_FORMAT}\", value); return 0; }" SIZE_FORMAT_I)
if(NOT SIZE_FORMAT_I)
set(SIZE_FORMAT "li")
check_c_source_compiles("#include <stdio.h>\nint main(int argc, char **argv) { size_t value = 0; printf(\"%${SIZE_FORMAT}\", value); return 0; }" SIZE_FORMAT_LI)
if(NOT SIZE_FORMAT_LI)
message(FATAL_ERROR "You must be using a really weird platform!")
endif()
endif()
endif()

find_package(ZLIB REQUIRED)
find_package(OpenSSL)

if (${OPENSSL_FOUND})
option(USE_OUR_OWN_MD5 "Build using own md5 implementation" OFF)
if(${OPENSSL_FOUND})
option(USE_OUR_OWN_MD5 "Build using own md5 implementation" OFF)
else()
option(USE_OUR_OWN_MD5 "Build using own md5 implementation" ON)
option(USE_OUR_OWN_MD5 "Build using own md5 implementation" ON)
endif()

message(STATUS "OPENSSL_FOUND: ${OPENSSL_FOUND}")
Expand Down
40 changes: 18 additions & 22 deletions lib/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,45 +1,41 @@
cmake_minimum_required(VERSION 3.6)

project(libunshield C)

add_subdirectory(convert_utf)

if(USE_OUR_OWN_MD5)
add_subdirectory(md5)
endif()

set(LIBUNSHIELD_HEADES
"internal.h"
"libunshield.h"
"log.h"
"cabfile.h"
set(LIBUNSHIELD_HEADERS
internal.h
libunshield.h
log.h
cabfile.h
)

set(LIBUNSHIELD_SOURCES
"component.c"
"directory.c"
"file.c"
"file_group.c"
"helper.c"
"libunshield.c"
"log.c"
component.c
directory.c
file.c
file_group.c
helper.c
libunshield.c
log.c
)

if(BUILD_STATIC)
add_library(${PROJECT_NAME} STATIC ${LIBUNSHIELD_HEADES} ${LIBUNSHIELD_SOURCES})
add_library(libunshield STATIC ${LIBUNSHIELD_HEADERS} ${LIBUNSHIELD_SOURCES})
else()
add_library(${PROJECT_NAME} SHARED ${LIBUNSHIELD_HEADES} ${LIBUNSHIELD_SOURCES})
add_library(libunshield SHARED ${LIBUNSHIELD_HEADERS} ${LIBUNSHIELD_SOURCES})
endif()

target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(${PROJECT_NAME} PUBLIC ZLIB::ZLIB convert_utf)
target_include_directories(libunshield PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(libunshield PUBLIC ZLIB::ZLIB convert_utf)
set_target_properties(libunshield PROPERTIES OUTPUT_NAME unshield)
set_target_properties(libunshield PROPERTIES VERSION 0.0.0 SOVERSION 0)

if(USE_OUR_OWN_MD5)
target_link_libraries(${PROJECT_NAME} PUBLIC md5)
target_link_libraries(libunshield PUBLIC md5)
else()
target_link_libraries(${PROJECT_NAME} PUBLIC OpenSSL::Crypto)
target_link_libraries(libunshield PUBLIC OpenSSL::Crypto)
endif()

install(TARGETS libunshield RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
Expand Down
8 changes: 4 additions & 4 deletions lib/convert_utf/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
set(LIBCONVERT_UTF_HEADES
"ConvertUTF.h"
set(LIBCONVERT_UTF_HEADERS
ConvertUTF.h
)

set(LIBCONVERT_UTF_SOURCES
"ConvertUTF.c"
ConvertUTF.c
)

if(BUILD_STATIC AND MSVC)
set_msvc_runtime_static()
endif()

add_library(convert_utf STATIC ${LIBCONVERT_UTF_HEADES} ${LIBCONVERT_UTF_SOURCES})
add_library(convert_utf STATIC ${LIBCONVERT_UTF_HEADERS} ${LIBCONVERT_UTF_SOURCES})

# Linux/Clang-7
# relocation R_X86_64_32S against `.rodata' can not be used when making a shared object;
Expand Down
12 changes: 6 additions & 6 deletions lib/md5/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
set(LIBMD5_UTF_HEADES
"global.h"
"md5.h"
set(LIBMD5_HEADERS
global.h
md5.h
)

set(LIBMD5_UTF_SOURCES
"md5c.c"
set(LIBMD5_SOURCES
md5c.c
)

if(BUILD_STATIC AND MSVC)
set_msvc_runtime_static()
endif()

add_library(md5 STATIC ${LIBMD5_UTF_HEADES} ${LIBMD5_UTF_SOURCES})
add_library(md5 STATIC ${LIBMD5_HEADERS} ${LIBMD5_SOURCES})
10 changes: 5 additions & 5 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir)
IF("${isSystemDir}" STREQUAL "-1")
SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir)
if("${isSystemDir}" STREQUAL "-1")
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
endif()

add_executable(unshield "unshield.c")
add_executable(unshield unshield.c)
target_link_libraries(unshield libunshield)
if(WIN32)
if(HAVE_ICONV)
Expand All @@ -12,7 +12,7 @@ if(WIN32)
target_link_libraries(unshield ${ZLIB_LIBRARIES})
endif()

add_executable(unshield-deobfuscate "unshield-deobfuscate.c")
add_executable(unshield-deobfuscate unshield-deobfuscate.c)
target_link_libraries(unshield-deobfuscate libunshield)
if(WIN32)
target_link_libraries(unshield-deobfuscate ${ZLIB_LIBRARIES})
Expand Down

0 comments on commit 4852238

Please sign in to comment.