1
0
mirror of https://github.com/anope/anope.git synced 2026-07-08 18:03:13 +02:00

More CMake work, adding win32.rc generation and fixing some other problems.

git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1837 5417fbe8-f217-4b02-8779-1006273d7864
This commit is contained in:
cyberbotx
2008-12-17 20:17:13 +00:00
parent 2d72446860
commit 88701c226e
7 changed files with 162 additions and 17 deletions
+43 -3
View File
@@ -14,6 +14,16 @@ ENDIF(CMAKE_BUILD_TYPE)
project(Anope CXX)
enable_language(C)
if(MINGW)
set(CMAKE_RC_COMPILER_INIT windres)
message(STATUS "CMAKE_RC_OUTPUT_EXTENSION: ${CMAKE_RC_OUTPUT_EXTENSION}")
enable_language(RC)
message(STATUS "CMAKE_RC_OUTPUT_EXTENSION: ${CMAKE_RC_OUTPUT_EXTENSION}")
set(CMAKE_RC_OUTPUT_EXTENSION .o)
message(STATUS "CMAKE_RC_OUTPUT_EXTENSION: ${CMAKE_RC_OUTPUT_EXTENSION}")
set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> <FLAGS> <DEFINES> -o <OBJECT> <SOURCE>")
endif(MINGW)
include(CheckFunctionExists)
include(CheckIncludeFile)
include(CheckTypeSize)
@@ -25,10 +35,12 @@ if(NOT WIN32)
endif(NOT WIN32)
if(WIN32 AND MSVC)
set(CXXFLAGS "${CXXFLAGS} /W4 /MD /GR /EHs /D_WIN32 /DMSVCPP /I${Anope_SOURCE_DIR}/include /I${Anope_BINARY_DIR}/include /I${Anope_BINARY_DIR}/lang")
string(REPLACE "/EHsc " "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
string(REPLACE "/GX " "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
set(CXXFLAGS "${CXXFLAGS} /W4 /EHs /D_WIN32 /DMSVCPP /I${Anope_SOURCE_DIR}/include /I${Anope_BINARY_DIR}/include /I${Anope_BINARY_DIR}/lang")
set(MODULE_CXXFLAGS "${CXXFLAGS} /DMODULE_COMPILE")
else(WIN32 AND MSVC)
set(CXXFLAGS "${CXXFLAGS} ${CMAKE_CXX_FLAGS} -Wall -Wshadow -I${Anope_SOURCE_DIR}/include -I${Anope_BINARY_DIR}/include -I${Anope_BINARY_DIR}/lang")
set(CXXFLAGS "${CXXFLAGS} -Wall -Wshadow -I${Anope_SOURCE_DIR}/include -I${Anope_BINARY_DIR}/include -I${Anope_BINARY_DIR}/lang")
if(UNIX)
set(CXXFLAGS "${CXXFLAGS} -ansi -pedantic -fno-leading-underscore")
else(UNIX)
@@ -48,13 +60,15 @@ if(CMAKE_DL_LIBS)
set(LDFLAGS "${LDFLAGS} ${CMAKE_DL_LIBS}")
endif(CMAKE_DL_LIBS)
if(MINGW)
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS} -Wl,--enable-auto-import")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS} -Wl,--enable-auto-import -Wl,--export-all-symbols")
endif(MINGW)
#set(MY_COMPILER ${CMAKE_CXX_COMPILER})
#set(MY_COMP_ARG)
if(WIN32)
set(PROGRAM_NAME anope)
else(WIN32)
set(PROGRAM_NAME services)
#set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> ${CXXFLAGS} <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> ${LDFLAGS}")
#set(CMAKE_CXX_CREATE_SHARED_MODULE "<CMAKE_CXX_COMPILER> ${CXXFLAGS} <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> ${LDFLAGS}")
endif(WIN32)
@@ -179,6 +193,32 @@ endif(NOT DATADIR)
#set(SERVICES_BINARY "")
if(WIN32)
file(STRINGS ${Anope_SOURCE_DIR}/version.log VERSIONS REGEX "^VERSION_")
message(STATUS "VERSIONS: ${VERSIONS}")
foreach(VERSION_STR ${VERSIONS})
string(LENGTH ${VERSION_STR} VERSION_LEN)
math(EXPR VERSION_NUM_LEN "${VERSION_LEN} - 16")
string(SUBSTRING ${VERSION_STR} 8 5 VERSION_TYPE)
string(SUBSTRING ${VERSION_STR} 15 ${VERSION_NUM_LEN} VERSION)
#message(STATUS "VERSION_TYPE: ${VERSION_TYPE} - VERSION: ${VERSION}")
set(VERSION_${VERSION_TYPE} ${VERSION})
#message(STATUS "VERSION_${VERSION_TYPE}: ${VERSION_${VERSION_TYPE}}")
endforeach(VERSION_STR ${VERSIONS})
set(VERSION_COMMA "${VERSION_MAJOR},${VERSION_MINOR},${VERSION_PATCH},${VERSION_BUILD}")
set(VERSION_DOTTED "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${VERSION_BUILD}")
set(VERSION_FULL "${VERSION_DOTTED}${VERSION_EXTRA}")
if(CMAKE_BUILD_TYPE STREQUAL "DEBUG" OR CMAKE_BUILD_TYPE STREQUAL "RELWITHDEBINFO")
set(FILEFLAGS "VS_FF_DEBUG")
else(CMAKE_BUILD_TYPE STREQUAL "DEBUG" OR CMAKE_BUILD_TYPE STREQUAL "RELWITHDEBINFO")
set(FILEFLAGS "0x0L")
endif(CMAKE_BUILD_TYPE STREQUAL "DEBUG" OR CMAKE_BUILD_TYPE STREQUAL "RELWITHDEBINFO")
configure_file(${Anope_SOURCE_DIR}/src/win32.rc.cmake ${Anope_BINARY_DIR}/src/win32.rc)
endif(WIN32)
add_subdirectory(data)
add_subdirectory(lang)
add_subdirectory(src)
+24 -7
View File
@@ -100,16 +100,33 @@ endforeach(SRC)
#add_custom_target(src_services DEPENDS ${BUILD_DIR}/services)
#add_custom_target(build ALL)
#add_dependencies(build language headers src_services)
add_executable(services ${SRC_SRCS})
set_target_properties(services PROPERTIES LINK_FLAGS "${LDFLAGS}")
set_target_properties(services PROPERTIES ENABLE_EXPORTS ON)
if(WIN32)
target_link_libraries(services wsock32)
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/win32.rc LANGUAGE RC)
set(SRC_SRCS ${SRC_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/win32.rc)
if(MINGW)
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/win32.rc COMPILE_FLAGS "-DMINGW -Ocoff -I${Anope_SOURCE_DIR}/include")
#add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/win32.obj
# COMMAND ${CMAKE_RC_COMPILER} -DMINGW -I${Anope_SOURCE_DIR}/include -o ${CMAKE_CURRENT_BINARY_DIR}/win32.obj ${CMAKE_CURRENT_BINARY_DIR}/win32.rc
# MAIN_DEPENDENCY ${CMAKE_CURRENT_BINARY_DIR}/win32.rc
#)
#set(SRC_SRCS ${SRC_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/win32.obj)
else(MINGW)
#set(SRC_SRCS ${SRC_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/win32.rc)
#set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/win32.rc LANGUAGE RC)
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/win32.rc COMPILE_FLAGS "/i${Anope_SOURCE_DIR}/include")
endif(MINGW)
message(STATUS "CMAKE_RC_OUTPUT_EXTENSION: ${CMAKE_RC_OUTPUT_EXTENSION}")
endif(WIN32)
add_executable(${PROGRAM_NAME} ${SRC_SRCS})
set_target_properties(${PROGRAM_NAME} PROPERTIES LINK_FLAGS "${LDFLAGS}")
set_target_properties(${PROGRAM_NAME} PROPERTIES ENABLE_EXPORTS ON)
if(WIN32)
target_link_libraries(${PROGRAM_NAME} wsock32)
endif(WIN32)
#set_target_properties(services PROPERTIES COMPILE_FLAGS ${CXXFLAGS})
add_dependencies(services language headers)
add_dependencies(${PROGRAM_NAME} language headers)
get_target_property(SERVICES_BINARY services LOCATION)
get_target_property(SERVICES_BINARY ${PROGRAM_NAME} LOCATION)
file(RELATIVE_PATH SERVICES_BINARY ${CMAKE_CURRENT_BINARY_DIR} ${SERVICES_BINARY})
set(SERVICES_BIN "${BINDIR}/${SERVICES_BINARY}")
message("[in src] SERVICES_BIN: ${SERVICES_BIN}")
@@ -125,6 +142,6 @@ add_subdirectory(modules)
add_subdirectory(protocol)
add_subdirectory(tools)
install(TARGETS services
install(TARGETS ${PROGRAM_NAME}
DESTINATION "${BINDIR}"
)
+2 -2
View File
@@ -56,11 +56,11 @@ foreach(SRC ${CORE_SRCS})
set_source_files_properties(${SRC} PROPERTIES OBJECT_DEPENDS "${HEADERS}")
endif(HEADERS)
add_library(${SO} MODULE ${SRC})
add_dependencies(${SO} services)
add_dependencies(${SO} ${PROGRAM_NAME})
#set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "" COMPILE_FLAGS ${CXXFLAGS})
set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "" LINK_FLAGS "${LDFLAGS}")
if(WIN32)
target_link_libraries(${SO} services wsock32)
target_link_libraries(${SO} ${PROGRAM_NAME} wsock32)
endif(WIN32)
#set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "")
install(TARGETS ${SO}
+2 -2
View File
@@ -51,11 +51,11 @@ foreach(SRC ${MODULES_SRCS})
set_source_files_properties(${SRC} PROPERTIES OBJECT_DEPENDS "${HEADERS}")
endif(HEADERS)
add_library(${SO} MODULE ${SRC})
add_dependencies(${SO} services)
add_dependencies(${SO} ${PROGRAM_NAME})
#set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "" COMPILE_FLAGS ${CXXFLAGS})
set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "" LINK_FLAGS "${LDFLAGS}")
if(WIN32)
target_link_libraries(${SO} services wsock32)
target_link_libraries(${SO} ${PROGRAM_NAME} wsock32)
endif(WIN32)
#set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "")
install(TARGETS ${SO}
+2 -2
View File
@@ -51,11 +51,11 @@ foreach(SRC ${PROTOCOL_SRCS})
set_source_files_properties(${SRC} PROPERTIES OBJECT_DEPENDS "${HEADERS}")
endif(HEADERS)
add_library(${SO} MODULE ${SRC})
add_dependencies(${SO} services)
add_dependencies(${SO} ${PROGRAM_NAME})
#set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "" COMPILE_FLAGS ${CXXFLAGS})
set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "" LINK_FLAGS "${LDFLAGS}")
if(WIN32)
target_link_libraries(${SO} services wsock32)
target_link_libraries(${SO} ${PROGRAM_NAME} wsock32)
endif(WIN32)
#set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "")
install(TARGETS ${SO}
+1 -1
View File
@@ -47,7 +47,7 @@ foreach(SRC ${TOOLS_SRCS})
endif(HEADERS)
add_executable(${EXE} ${SRC})
set_target_properties(${EXE} PROPERTIES LINK_FLAGS "${LDFLAGS}")
add_dependencies(${EXE} services)
add_dependencies(${EXE} ${PROGRAM_NAME})
#set_target_properties(${EXE} PROPERTIES COMPILE_FLAGS ${CXXFLAGS})
install(TARGETS ${EXE}
DESTINATION "${BINDIR}/tools"
+88
View File
@@ -0,0 +1,88 @@
///Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#define APSTUDIO_HIDDEN_SYMBOLS
#include <windows.h>
#undef APSTUDIO_HIDDEN_SYMBOLS
#include "resource.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VER_ANOPE VERSIONINFO
FILEVERSION @VERSION_COMMA@
PRODUCTVERSION @VERSION_COMMA@
#ifndef MINGW
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
#endif
FILEFLAGS @FILEFLAGS@
FILEOS VOS_NT
FILETYPE VFT_APP
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "Anope Team"
VALUE "FileDescription", "Anope IRC Services"
VALUE "FileVersion", "@VERSION_FULL@"
VALUE "InternalName", "Anope"
VALUE "LegalCopyright", "Copyright (C) 2003-2008 Anope Team"
VALUE "OriginalFilename", "anope.exe"
VALUE "ProductName", "Anope"
VALUE "ProductVersion", "@VERSION_DOTTED@"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
#endif // !_MAC
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
ICON_APP ICON "@Anope_SOURCE_DIR@/src/anope-icon.ico"
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED