diff --git a/CMakeLists.txt b/CMakeLists.txt index dd3e347689..b1f389bf49 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -81,6 +81,7 @@ include(cmake/bundle_static.cmake) # Also we would like users to link a native cmake target, instead of a custom target for better # compatability. option(BUILD_SHARED_LIBS "Build shared instead of static library" ${PROJECT_IS_TOP_LEVEL}) +option(UNICORN_LEGACY_STATIC_ARCHIVE "Enable Unicorn v1 style all-in-one objects archive for libunicorn.a" ${PROJECT_IS_TOP_LEVEL}) option(UNICORN_FUZZ "Enable fuzzing" OFF) option(UNICORN_LOGGING "Enable logging" OFF) option(UNICORN_BUILD_TESTS "Build unicorn tests" ${PROJECT_IS_TOP_LEVEL}) @@ -1442,16 +1443,18 @@ if (BUILD_SHARED_LIBS) endif() # Black magic for generating static archives... -if (BUILD_SHARED_LIBS) - if (MSVC) - # Avoid the import lib built by MVSC clash with our archive. - set_target_properties(unicorn PROPERTIES ARCHIVE_OUTPUT_NAME "unicorn-import") +if (UNICORN_LEGACY_STATIC_ARCHIVE) + if (BUILD_SHARED_LIBS) + if (MSVC) + # Avoid the import lib built by MVSC clash with our archive. + set_target_properties(unicorn PROPERTIES ARCHIVE_OUTPUT_NAME "unicorn-import") + endif() + bundle_static_library(unicorn_static unicorn_archive unicorn) + else() + # Rename the "static" lib to avoid filename clash. + set_target_properties(unicorn PROPERTIES OUTPUT_NAME "unicorn-static") + bundle_static_library(unicorn unicorn_archive unicorn) endif() - bundle_static_library(unicorn_static unicorn_archive unicorn) -else() - # Rename the "static" lib to avoid filename clash. - set_target_properties(unicorn PROPERTIES OUTPUT_NAME "unicorn-static") - bundle_static_library(unicorn unicorn_archive unicorn) endif() if(UNICORN_FUZZ) @@ -1514,8 +1517,10 @@ if(UNICORN_INSTALL AND NOT MSVC) LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ) endif() - install(FILES $ DESTINATION ${CMAKE_INSTALL_LIBDIR}) - install(FILES $/$ DESTINATION ${CMAKE_INSTALL_LIBDIR}) + if (UNICORN_LEGACY_STATIC_ARCHIVE) + install(FILES $ DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(FILES $/$ DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() install(FILES ${UNICORN_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/unicorn) if (ATOMIC_LINKAGE_FIX) set(ATOMIC_LINK_PKG_CONFIG " -latomic")