Skip to content

Commit d69ee71

Browse files
authored
Merge pull request #7 from cen1/master
CMake and various cleanup.
2 parents d7f940e + 9a0a744 commit d69ee71

17 files changed

Lines changed: 2494 additions & 3503 deletions

File tree

.gitignore

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,7 @@
11
*.o
2-
/src/bncsutil/libbncsutil.so
2+
*.so
3+
Release/
4+
Debug/
5+
*.dll
6+
*.lib
7+
build/

CMake/Modules/FindGMP.cmake

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Try to find the GMP librairies
2+
# GMP_FOUND - system has GMP lib
3+
# GMP_INCLUDE_DIR - the GMP include directory
4+
# GMP_LIBRARIES - Libraries needed to use GMP
5+
6+
if (GMP_INCLUDE_DIR AND GMP_LIBRARIES)
7+
set(GMP_FIND_QUIETLY TRUE)
8+
endif (GMP_INCLUDE_DIR AND GMP_LIBRARIES)
9+
10+
find_path(GMP_INCLUDE_DIR NAMES gmp.h PATHS ${CMAKE_SOURCE_DIR}/depends/include)
11+
find_library(GMP_LIBRARIES NAMES gmp libgmp libgmp.so.10 PATHS ${CMAKE_SOURCE_DIR}/depends/lib )
12+
13+
MESSAGE(STATUS "GMP libs: " ${GMP_LIBRARIES} " " ${GMPXX_LIBRARIES} )
14+
include(FindPackageHandleStandardArgs)
15+
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GMP DEFAULT_MSG GMP_INCLUDE_DIR GMP_LIBRARIES)
16+
mark_as_advanced(GMP_INCLUDE_DIR GMP_LIBRARIES)

CMake/Modules/FindMPIR.cmake

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Try to find the MPIR librairies
2+
# MPIR_FOUND - system has MPIR lib
3+
# MPIR_INCLUDE_DIR - the MPIR include directory
4+
# MPIR_LIBRARIES - Libraries needed to use MPIR
5+
6+
if (MPIR_INCLUDE_DIR AND MPIR_LIBRARIES)
7+
set(MPIR_FIND_QUIETLY TRUE)
8+
endif (MPIR_INCLUDE_DIR AND MPIR_LIBRARIES)
9+
10+
find_path(MPIR_INCLUDE_DIR NAMES mpir.h PATHS ${CMAKE_SOURCE_DIR}/depends/include)
11+
find_library(MPIR_LIBRARIES NAMES mpir libmpir PATHS ${CMAKE_SOURCE_DIR}/depends/lib )
12+
13+
MESSAGE(STATUS "MPIR libs: " ${MPIR_LIBRARIES} " " ${MPIRXX_LIBRARIES} )
14+
include(FindPackageHandleStandardArgs)
15+
FIND_PACKAGE_HANDLE_STANDARD_ARGS(MPIR DEFAULT_MSG MPIR_INCLUDE_DIR MPIR_LIBRARIES)
16+
mark_as_advanced(MPIR_INCLUDE_DIR MPIR_LIBRARIES)

CMakeLists.txt

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
project(bncsutil)
2+
cmake_minimum_required(VERSION 2.6)
3+
4+
file(GLOB SOURCE
5+
"src/bncsutil/*.cpp"
6+
"src/bncsutil/*.c"
7+
)
8+
file(GLOB HEADERS
9+
"src/bncsutil/*.h"
10+
)
11+
set(CMAKE_MODULE_PATH CMake/Modules)
12+
13+
add_library(${PROJECT_NAME} SHARED ${SOURCE} ${HEADERS})
14+
add_library(${PROJECT_NAME}_static STATIC ${SOURCE} ${HEADERS})
15+
16+
if (BUILD_32)
17+
set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32")
18+
MESSAGE(STATUS "Excluding 64bit library paths from search.")
19+
set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS OFF)
20+
set(ARCH i686)
21+
elseif (BUILD_64)
22+
set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "-m64" LINK_FLAGS "-m64")
23+
set(ARCH amd64)
24+
else()
25+
set(ARCH amd64)
26+
endif()
27+
28+
if (USE_MPIR)
29+
find_package(MPIR REQUIRED)
30+
include_directories(src ${MPIR_INCLUDE_DIR})
31+
target_link_libraries(${PROJECT_NAME} ${MPIR_LIBRARIES})
32+
add_definitions(-DUSE_MPIR=1)
33+
else()
34+
find_package(GMP REQUIRED)
35+
include_directories(src ${GMP_INCLUDE_DIR})
36+
target_link_libraries(${PROJECT_NAME} ${GMP_LIBRARIES})
37+
endif()
38+
39+
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME bncsutil)
40+
41+
if(UNIX)
42+
set_target_properties(${PROJECT_NAME} PROPERTIES VERSION 1.3.2)
43+
set_target_properties(${PROJECT_NAME} PROPERTIES SOVERSION 1)
44+
45+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O3 -Wno-multichar -fPIC")
46+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O3 -Wno-multichar -fPIC")
47+
endif()
48+
49+
if (WIN32)
50+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS -DMUTIL_LIB_BUILD=1")
51+
target_link_libraries(${PROJECT_NAME} Version.lib)
52+
endif()
53+
54+
SET(VERSION_MAJOR "1")
55+
SET(VERSION_MINOR "3")
56+
SET(VERSION_PATCH "2")
57+
58+
install(TARGETS bncsutil RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
59+
install(FILES src/bncsutil/bncsutil.h DESTINATION include/bncsutil)
60+
61+
#CPack configurtion
62+
SET(CPACK_GENERATOR "DEB" "RPM")
63+
SET(CPACK_PACKAGE_NAME ${PROJECT_NAME})
64+
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Battle.Net Chat Service Utility")
65+
SET(CPACK_PACKAGE_VENDOR "bncsutil")
66+
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
67+
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
68+
SET(CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}")
69+
SET(CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}")
70+
SET(CPACK_PACKAGE_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}")
71+
72+
#DEB configuration
73+
SET(CPACK_DEBIAN_PACKAGE_SECTION "libs")
74+
SET(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/BNETDocs/bncsutil")
75+
SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "imbacen@gmail.com")
76+
SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${ARCH})
77+
SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libgmp10")
78+
79+
#RPM configuration
80+
SET(CPACK_RPM_PACKAGE_RELEASE 1)
81+
SET(CPACK_RPM_PACKAGE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
82+
SET(CPACK_RPM_PACKAGE_GROUP "${PROJECT_NAME}")
83+
SET(CPACK_RPM_PACKAGE_URL "https://github.com/BNETDocs/bncsutil")
84+
SET(CPACK_RPM_PACKAGE_REQUIRES "gmp")
85+
SET(CPACK_RPM_PACKAGE_ARCHITECTURE ${ARCH})
86+
87+
INCLUDE(CPack)

0 commit comments

Comments
 (0)