blob: dc7a2f54e869844e4715efc7b819519b19228441 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
#if(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
# set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR})
#else(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
# file(RELATIVE_PATH DIR ${Anope_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
# set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/${DIR})
#endif(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
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})
list(SORT MODULES_SRCS)
#add_custom_target(modules ALL)
#add_custom_target(modules)
#add_dependencies(modules build)
set_source_files_properties(${MODULES_SRCS} PROPERTIES LANGUAGE CXX COMPILE_FLAGS "${MODULE_CXXFLAGS}")
foreach(SRC ${MODULES_SRCS})
string(REGEX REPLACE "\\.cpp$" ".x" SRC_X ${SRC})
string(REGEX REPLACE "\\.c$" ".o" SRC_O ${SRC_X})
string(REGEX REPLACE "\\.x$" ".o" OBJ ${SRC_O})
#string(REGEX REPLACE "\\." "_" OBJ_TARGET ${OBJ})
string(REGEX REPLACE "\\.o" ".so" SO ${OBJ})
#string(REGEX REPLACE "\\.o" "" SO ${OBJ})
#string(REGEX REPLACE "\\." "_" SO_TARGET ${SO})
#add_custom_command(OUTPUT ${BUILD_DIR}/${OBJ}
# COMMAND ${MY_COMPILER} ${MY_COMP_ARG} ${CMAKE_CXX_CFLAGS} -I${Anope_SOURCE_DIR}/include -c ${SRC} -o ${BUILD_DIR}/${OBJ}
# MAIN_DEPENDENCY ${SRC}
#)
#add_custom_target(modules_${OBJ_TARGET} DEPENDS ${BUILD_DIR}/${OBJ})
#add_custom_command(OUTPUT ${BUILD_DIR}/${SO}
# COMMAND ${MY_COMPILER} ${MY_COMP_ARG} ${CMAKE_CXX_CFLAGS} ${CMAKE_SHARED_LIBRARY_CXX_FLAGS} ${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS} ${BUILD_DIR}/${OBJ} -o ${BUILD_DIR}/${SO}
# MAIN_DEPENDENCY ${BUILD_DIR}/${OBJ}
#)
#add_custom_target(modules_${SO_TARGET} DEPENDS ${BUILD_DIR}/${SO})
#add_dependencies(modules modules_${SO_TARGET})
set(HEADERS ${Anope_SOURCE_DIR}/include/module.h)
if(${SRC}_HEADERS)
foreach(HEADER ${${SRC}_HEADERS})
string(SUBSTRING ${HEADER} 0 1 FIRST_CHAR)
string(SUBSTRING ${HEADER} 1 1 SECOND_CHAR)
if(FIRST_CHAR STREQUAL "/" OR SECOND_CHAR STREQUAL ":")
set(HEADERS ${HEADERS} ${HEADER})
else(FIRST_CHAR STREQUAL "/" OR SECOND_CHAR STREQUAL ":")
set(HEADERS ${HEADERS} ${Anope_SOURCE_DIR}/include/${HEADER})
endif(FIRST_CHAR STREQUAL "/" OR SECOND_CHAR STREQUAL ":")
endforeach(HEADER)
endif(${SRC}_HEADERS)
if(HEADERS)
set_source_files_properties(${SRC} PROPERTIES OBJECT_DEPENDS "${HEADERS}")
endif(HEADERS)
add_library(${SO} MODULE ${SRC})
add_dependencies(${SO} services)
#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)
endif(WIN32)
#set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "")
install(TARGETS ${SO}
DESTINATION "${DATADIR}/modules"
)
endforeach(SRC)
|