mirror of
https://github.com/anope/anope.git
synced 2026-06-30 21:46:39 +02:00
e802b6dfe8
Added CPack setup to automate generation of source package for *nix and NSIS installer for Windows. Some other minor CMake fixes. Converted docs/README and docs/WIN32.txt from Unix linefeeds to DOS linefeeds so they show up right in Notepad under Windows. Added small fix for Visual Studio 2008, CMake doesn't detect the Express version correctly and it must be explicitly defined. git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1861 5417fbe8-f217-4b02-8779-1006273d7864
37 lines
2.0 KiB
CMake
37 lines
2.0 KiB
CMake
# Find all the *.c and *.cpp files within the current source directory, and sort the list
|
|
file(GLOB MODULES_SRCS_C RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.c")
|
|
file(GLOB MODULES_SRCS_CPP RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cpp")
|
|
set(MODULES_SRCS ${MODULES_SRCS_C} ${MODULES_SRCS_CPP})
|
|
if(CMAKE244_OR_BETTER)
|
|
list(SORT MODULES_SRCS)
|
|
endif(CMAKE244_OR_BETTER)
|
|
|
|
# Set all the files to use C++ as well as set their compile flags (use the module-specific compile flags, though)
|
|
set_source_files_properties(${MODULES_SRCS} PROPERTIES LANGUAGE CXX COMPILE_FLAGS "${MODULE_CXXFLAGS}")
|
|
|
|
# Iterate through all the source files
|
|
foreach(SRC ${MODULES_SRCS})
|
|
# Convert the source file extension to have a .so extension
|
|
string(REGEX REPLACE "\\.(c|cpp)$" ".so" SO ${SRC})
|
|
# Calculate the header file dependencies for the given source file
|
|
calculate_depends(${SRC})
|
|
# For Visual Studio only, include win32_memory.cpp to the list of sources, required to override Visual Studio's overrides of the new/delete operators
|
|
if(MSVC)
|
|
append_to_list(SRC ${Anope_SOURCE_DIR}/src/win32_memory.cpp)
|
|
set_source_files_properties(${Anope_SOURCE_DIR}/src/win32_memory.cpp LANGUAGE CXX COMPILE_FLAGS "${MODULE_CXXFLAGS}")
|
|
endif(MSVC)
|
|
# Generate the module and set it's linker flags, also set it to depend on the main Anope executable to be built beforehand
|
|
add_library(${SO} MODULE ${SRC})
|
|
set_target_properties(${SO} PROPERTIES LINKER_LANGUAGE CXX PREFIX "" SUFFIX "" LINK_FLAGS "${LDFLAGS}")
|
|
add_dependencies(${SO} ${PROGRAM_NAME})
|
|
# For Windows only, have the module link to the export library of Anope as well as the wsock32 library (most of the modules probably don't need this, but this is to be on the safe side), also set it's version
|
|
if(WIN32)
|
|
target_link_libraries(${SO} ${PROGRAM_NAME} wsock32)
|
|
set_target_properties(${PROGRAM_NAME} PROPERTIES VERSION "${VERSION_DOTTED}")
|
|
endif(WIN32)
|
|
# Set the module to be installed to the module directory under the data directory
|
|
install(TARGETS ${SO}
|
|
DESTINATION data/modules
|
|
)
|
|
endforeach(SRC)
|