diff options
| author | Petr Mrázek | 2012-03-13 14:46:48 +0100 |
|---|---|---|
| committer | Petr Mrázek | 2012-03-13 14:46:48 +0100 |
| commit | eb4757043b12764f20c6bd1a6edc12201f74b2ce (patch) | |
| tree | cfb41b761fa691651b88ce330fde59e57862a384 /library/CMakeLists.txt | |
| parent | b3f6bccdf6ba559cfbff462029ea350f5d367171 (diff) | |
| download | dfhack-eb4757043b12764f20c6bd1a6edc12201f74b2ce.tar.gz dfhack-eb4757043b12764f20c6bd1a6edc12201f74b2ce.tar.bz2 dfhack-eb4757043b12764f20c6bd1a6edc12201f74b2ce.tar.xz | |
Move depends out of main library, make them (static) libraries.
Diffstat (limited to 'library/CMakeLists.txt')
| -rw-r--r-- | library/CMakeLists.txt | 149 |
1 files changed, 77 insertions, 72 deletions
diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index d1b36c68..ac54340e 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -10,21 +10,16 @@ IF(UNIX) ENDIF() include_directories (include) -include_directories (depends/md5) -include_directories (depends/tinyxml) -include_directories (depends/tthread) -add_subdirectory (depends/protobuf) SET(PERL_EXECUTABLE "perl" CACHE FILEPATH "This is the perl executable to run in the codegen step. Tweak it if you need to run a specific one.") -execute_process(COMMAND ${PERL_EXECUTABLE} xml/list.pl xml include/df ";" +execute_process(COMMAND ${PERL_EXECUTABLE} xml/list.pl xml ${dfapi_SOURCE_DIR}/include/df ";" WORKING_DIRECTORY ${dfapi_SOURCE_DIR} OUTPUT_VARIABLE GENERATED_HDRS) -SET(PROJECT_HDRS_INTERNAL -) +SET_SOURCE_FILES_PROPERTIES(${GENERATED_HDRS} PROPERTIES HEADER_FILE_ONLY TRUE GENERATED TRUE) -SET(PROJECT_HDRS +SET(MAIN_HEADERS include/Internal.h include/DFHack.h include/Console.h @@ -46,6 +41,52 @@ include/Types.h include/VersionInfo.h include/VersionInfoFactory.h include/Virtual.h +) + +SET(MAIN_HEADERS_WINDOWS +include/wdirent.h +) + +SET(MAIN_SOURCES +Core.cpp +ColorText.cpp +DataDefs.cpp +DataStatics.cpp +DataStaticsCtor.cpp +MiscUtils.cpp +PluginManager.cpp +TileTypes.cpp +VersionInfoFactory.cpp +Virtual.cpp +) + +SET(MAIN_SOURCES_WINDOWS +Console-windows.cpp +Hooks-windows.cpp +PlugLoad-windows.cpp +Process-windows.cpp +) + +IF(WIN32) + SOURCE_GROUP("Main\\Headers" FILES ${MAIN_HEADERS} ${MAIN_HEADERS_WINDOWS}) + SOURCE_GROUP("Main\\Sources" FILES ${MAIN_SOURCES} ${MAIN_SOURCES_WINDOWS}) +ENDIF() + +SET(MAIN_SOURCES_LINUX +Console-linux.cpp +Hooks-linux.cpp +PlugLoad-linux.cpp +Process-linux.cpp +) + +SET(MAIN_SOURCES_LINUX_EGGY +Console-linux.cpp +Hooks-egg.cpp +PlugLoad-linux.cpp +Process-linux.cpp +) + +SET(MODULE_HEADERS include/modules/Buildings.h include/modules/Constructions.h include/modules/Units.h @@ -65,28 +106,7 @@ include/modules/World.h include/modules/Graphic.h ) -SET(PROJECT_SRCS -Core.cpp -ColorText.cpp -DataDefs.cpp -DataStatics.cpp -DataStaticsCtor.cpp -MiscUtils.cpp -PluginManager.cpp -TileTypes.cpp -VersionInfoFactory.cpp -Virtual.cpp - -depends/md5/md5.cpp -depends/md5/md5wrapper.cpp - -depends/tinyxml/tinystr.cpp -depends/tinyxml/tinyxml.cpp -depends/tinyxml/tinyxmlerror.cpp -depends/tinyxml/tinyxmlparser.cpp - -depends/tthread/tinythread.cpp - +SET( MODULE_SOURCES modules/Buildings.cpp modules/Constructions.cpp modules/Units.cpp @@ -106,52 +126,39 @@ modules/Graphic.cpp modules/Windows.cpp ) -SET(PROJECT_HDRS_WINDOWS -include/wdirent.h -) - -SET(PROJECT_SRCS_LINUX -Console-linux.cpp -Hooks-linux.cpp -PlugLoad-linux.cpp -Process-linux.cpp -) - -SET(PROJECT_SRCS_WINDOWS -Console-windows.cpp -Hooks-windows.cpp -PlugLoad-windows.cpp -Process-windows.cpp -) +IF(WIN32) + SOURCE_GROUP("Modules\\Headers" FILES ${MODULE_HEADERS}) + SOURCE_GROUP("Modules\\Sources" FILES ${MODULE_SOURCES}) + SOURCE_GROUP("Generated" FILES ${GENERATED_HDRS}) +ENDIF() -SET(PROJECT_SRCS_LINUX_EGG -Console-linux.cpp -Hooks-egg.cpp -PlugLoad-linux.cpp -Process-linux.cpp -) +SET(PROJECT_HEADERS) +LIST(APPEND PROJECT_HEADERS ${MAIN_HEADERS}) +LIST(APPEND PROJECT_HEADERS ${MODULE_HEADERS}) +SET(PROJECT_SOURCES) +LIST(APPEND PROJECT_SOURCES ${MAIN_SOURCES}) +LIST(APPEND PROJECT_SOURCES ${MODULE_SOURCES}) IF(UNIX) OPTION(BUILD_EGGY "Make DFHack strangely egg-shaped." OFF) IF(BUILD_EGGY) - LIST(APPEND PROJECT_SRCS ${PROJECT_SRCS_LINUX_EGG}) + LIST(APPEND PROJECT_SOURCES ${MAIN_SOURCES_LINUX_EGGY}) ELSE() - LIST(APPEND PROJECT_SRCS ${PROJECT_SRCS_LINUX}) + LIST(APPEND PROJECT_SOURCES ${MAIN_SOURCES_LINUX}) ENDIF() -ELSE() - LIST(APPEND PROJECT_HDRS ${PROJECT_HDRS_WINDOWS}) - LIST(APPEND PROJECT_SRCS ${PROJECT_SRCS_WINDOWS}) +ELSEIF(WIN32) + LIST(APPEND PROJECT_SOURCES ${MAIN_SOURCES_WINDOWS}) + LIST(APPEND PROJECT_HEADERS ${MAIN_HEADERS_WINDOWS}) ENDIF() # Protobuf - FILE(GLOB PROJECT_PROTOS ${CMAKE_CURRENT_SOURCE_DIR}/proto/*.proto) STRING(REPLACE ".proto" ".pb.cc" PROJECT_PROTO_SRCS ${PROJECT_PROTOS}) STRING(REPLACE ".proto" ".pb.h" PROJECT_PROTO_HDRS ${PROJECT_PROTOS}) -LIST(APPEND PROJECT_HDRS ${PROJECT_PROTO_HDRS}) -LIST(APPEND PROJECT_SRCS ${PROJECT_PROTO_SRCS}) +LIST(APPEND PROJECT_HEADERS ${PROJECT_PROTO_HDRS}) +LIST(APPEND PROJECT_HEADERS ${PROJECT_PROTO_SRCS}) ADD_CUSTOM_COMMAND( OUTPUT ${PROJECT_PROTO_SRCS} ${PROJECT_PROTO_HDRS} @@ -161,15 +168,12 @@ ADD_CUSTOM_COMMAND( DEPENDS protoc-bin ${PROJECT_PROTOS} ) -# - -SET_SOURCE_FILES_PROPERTIES( ${PROJECT_HDRS} PROPERTIES HEADER_FILE_ONLY TRUE ) - -LIST(APPEND PROJECT_SRCS ${PROJECT_HDRS}) +# Merge headers into sources +SET_SOURCE_FILES_PROPERTIES( ${PROJECT_HEADERS} PROPERTIES HEADER_FILE_ONLY TRUE ) +LIST(APPEND PROJECT_SOURCES ${PROJECT_HEADERS}) # Generation - -SET_SOURCE_FILES_PROPERTIES(${GENERATED_HDRS} PROPERTIES HEADER_FILE_ONLY TRUE GENERATED TRUE) +LIST(APPEND PROJECT_SOURCES ${GENERATED_HDRS}) FILE(GLOB GENERATE_INPUT_SCRIPTS ${dfapi_SOURCE_DIR}/xml/*.pm ${dfapi_SOURCE_DIR}/xml/*.xslt) FILE(GLOB GENERATE_INPUT_XMLS ${dfapi_SOURCE_DIR}/xml/*.xml) @@ -198,13 +202,13 @@ IF(UNIX) ENDIF() IF(UNIX) - SET(PROJECT_LIBS rt dl) + SET(PROJECT_LIBS rt dl dfhack-md5 dfhack-tinyxml dfhack-tinythread) ELSE(WIN32) - #FIXME: do we really need this? - SET(PROJECT_LIBS psapi) + #FIXME: do we really need psapi? + SET(PROJECT_LIBS psapi dfhack-tinyxml dfhack-tinythread) ENDIF() -ADD_LIBRARY(dfhack SHARED ${PROJECT_SRCS}) +ADD_LIBRARY(dfhack SHARED ${PROJECT_SOURCES}) ADD_DEPENDENCIES(dfhack generate_headers) IF(BUILD_EGGY) @@ -225,6 +229,7 @@ ENDIF() SET_TARGET_PROPERTIES(dfhack PROPERTIES DEBUG_POSTFIX "-debug" ) TARGET_LINK_LIBRARIES(dfhack protobuf-lite ${PROJECT_LIBS}) +SET_TARGET_PROPERTIES(dfhack PROPERTIES LINK_INTERFACE_LIBRARIES "") IF(UNIX) # On linux, copy our version of the df launch script which sets LD_PRELOAD |
