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:
+43
-3
@@ -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
@@ -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}"
|
||||
)
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user