diff options
author | namreeb <github@namreeb.org> | 2017-03-09 08:39:29 -1000 |
---|---|---|
committer | namreeb <github@namreeb.org> | 2017-03-09 08:39:29 -1000 |
commit | 10fa5dded19e12b90b34260064da261d19dba005 (patch) | |
tree | 3a8eae95c64778dd583fb31370c03d7cca2d34c5 /CMakeLists.txt | |
parent | 69c5b0682b6355e4ee6405b41ffa30330ebfa046 (diff) |
Updated CMakeLists.txt to accurately name output file under Windows
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 45 |
1 files changed, 40 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 9d421af..942f684 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -263,6 +263,12 @@ add_definitions(-D_7ZIP_ST -DBZ_STRICT_ANSI) if(WIN32) if(MSVC) + option(UNICODE "Enable UNICODE mode" OFF) + if (UNICODE) + message(STATUS "Using UNICODE") + else() + message(STATUS "Using ASCII") + endif() message(STATUS "Using MSVC") add_definitions(-DWIN32) else() @@ -288,14 +294,26 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL FreeBSD) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DO_LARGEFILE=0 -Dstat64=stat -Dlstat64=lstat -Dlseek64=lseek -Doff64_t=off_t -Dfstat64=fstat -Dftruncate64=ftruncate") endif() -option(BUILD_SHARED_LIBS "Compile shared libraries" OFF) +option(BUILD_SHARED_LIBS "Link against dependent libraries dynamically" ON) +option(BUILD_DYNAMIC_MODULE "Output dynamically loadable module" OFF) + +if (BUILD_DYNAMIC_MODULE) + set(LIB_TYPE SHARED) + message(STATUS "Building dynamic module") +else() + set(LIB_TYPE STATIC) + message(STATUS "Building static module") +endif() + +add_library(${LIBRARY_NAME} ${LIB_TYPE} ${SRC_FILES} ${SRC_ADDITIONAL_FILES}) -add_library(${LIBRARY_NAME} ${SRC_FILES} ${SRC_ADDITIONAL_FILES}) target_link_libraries(${LIBRARY_NAME} ${LINK_LIBS}) target_compile_definitions(${LIBRARY_NAME} PUBLIC) #CMake should take care of the linking target_include_directories(${LIBRARY_NAME} PUBLIC src/) set_target_properties(${LIBRARY_NAME} PROPERTIES PUBLIC_HEADER "src/StormLib.h;src/StormPort.h") if(BUILD_SHARED_LIBS) + message(STATUS "Linking against dependent libraries dynamically") + if(APPLE) set_target_properties(${LIBRARY_NAME} PROPERTIES FRAMEWORK true) set_target_properties(${LIBRARY_NAME} PROPERTIES LINK_FLAGS "-framework Carbon") @@ -308,10 +326,27 @@ if(BUILD_SHARED_LIBS) set_target_properties(${LIBRARY_NAME} PROPERTIES VERSION "${VERSION_STRING}") set_target_properties(${LIBRARY_NAME} PROPERTIES SOVERSION "${VERSION_MAJOR}") endif() +else() + message(STATUS "Linking against dependent libraries statically") +endif() - # On Win32, build StormLib.dll since we don't want to clash with Storm.dll - if(WIN32) - set_target_properties(${LIBRARY_NAME} PROPERTIES OUTPUT_NAME StormLib) +if(WIN32) + if (UNICODE) + if (BUILD_SHARED_LIBS) + set_target_properties(${LIBRARY_NAME} PROPERTIES OUTPUT_NAME_DEBUG StormLibDUD) + set_target_properties(${LIBRARY_NAME} PROPERTIES OUTPUT_NAME_RELEASE StormLibRUD) + else() + set_target_properties(${LIBRARY_NAME} PROPERTIES OUTPUT_NAME_DEBUG StormLibDUS) + set_target_properties(${LIBRARY_NAME} PROPERTIES OUTPUT_NAME_RELEASE StormLibRUS) + endif() + else() + if (BUILD_SHARED_LIBS) + set_target_properties(${LIBRARY_NAME} PROPERTIES OUTPUT_NAME_DEBUG StormLibDAD) + set_target_properties(${LIBRARY_NAME} PROPERTIES OUTPUT_NAME_RELEASE StormLibRAD) + else() + set_target_properties(${LIBRARY_NAME} PROPERTIES OUTPUT_NAME_DEBUG StormLibDAS) + set_target_properties(${LIBRARY_NAME} PROPERTIES OUTPUT_NAME_RELEASE StormLibRAS) + endif() endif() endif() |