aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authornamreeb <github@namreeb.org>2017-03-09 08:39:29 -1000
committernamreeb <github@namreeb.org>2017-03-09 08:39:29 -1000
commit10fa5dded19e12b90b34260064da261d19dba005 (patch)
tree3a8eae95c64778dd583fb31370c03d7cca2d34c5 /CMakeLists.txt
parent69c5b0682b6355e4ee6405b41ffa30330ebfa046 (diff)
Updated CMakeLists.txt to accurately name output file under Windows
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt45
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()