# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
# 
#   http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

celix_subproject(DEPENDENCY_MANAGER2 "Option to build the dependency manager static library" "OFF" DEPS framework)
if (DEPENDENCY_MANAGER2) 
    # Add -fPIC for x86_64 Unix platforms; this lib will be linked to a shared lib
    if(UNIX AND NOT WIN32)
      find_program(CMAKE_UNAME uname /bin /usr/bin /usr/local/bin )
      if(CMAKE_UNAME)
        exec_program(uname ARGS -m OUTPUT_VARIABLE CMAKE_SYSTEM_PROCESSOR)
        set(CMAKE_SYSTEM_PROCESSOR ${CMAKE_SYSTEM_PROCESSOR} CACHE INTERNAL "processor type (i386 and x86_64)")
         if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
          add_definitions(-fPIC)
        endif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
      endif(CMAKE_UNAME)
    endif(UNIX AND NOT WIN32)
    
    CELIX_ADD_COMPONENT(dependency_manager2
    	DISPLAY_NAME Dependency Manager
        DESCRIPTION "The Apache Celix dependency manager (static) library"
        GROUP all
    )
    
    add_library(dependency_manager2 STATIC 
    	private/src/dm_activator_base 
    	private/src/dm_component_impl 
    	private/src/dm_service_dependency
    	private/src/dm_event
    	private/src/dm_dependency_manager_impl)
   	include_directories("public/include")
   	include_directories("private/include")
    include_directories("${PROJECT_SOURCE_DIR}/utils/public/include")
    target_link_libraries(dependency_manager2 celix_framework)
    
    install(
    	FILES
    	    public/include/dm_activator_base.h
            public/include/dm_component.h
            public/include/dm_dependency_manager.h
            public/include/dm_service_dependency.h
		DESTINATION 
			include/celix/dependency_manager_2
		COMPONENT 
			dependency_manager2
	)
    install(TARGETS dependency_manager2 DESTINATION lib COMPONENT dependency_manager2)
endif (DEPENDENCY_MANAGER2)
