genbetadev / Genbeta-Dev-Engine

Desarrollo de un Game Engine básico sobre C++ y SFML 2.1
MIT License
63 stars 32 forks source link

Build del proyecto como static o shared library #71

Closed danigomez closed 10 years ago

danigomez commented 10 years ago

Buenas, gente! no me está quedando del todo claro el tema del buildeo como libreria estática o dinámica... Por ejemplo, en el archivo Config.hpp chequea la macro GDE_STATIC para definir GDE_API según sea un build como librería estática o no. Luego está la macro GDE_API_EXPORT, que por lo que llego a entender deberia estar definida solo para el build del engine y para que las clases definidas por el engine sean visibles y puedan ser utilizadas por quien haga uso del mismo, es esto correcto?? Y por otro lado, dónde y cuándo deberian ser definidas estás macros?, ya que al parecer no están definidas... Gracias!

DavidBM commented 10 years ago

Las macros las defines con CMake al generar el proyecto. Cuando le des a configure te saldrán las opciones a modificar.

danigomez commented 10 years ago

Ahhh ok, es decir, hay que definirlas a mano en el momento del build??

DavidBM commented 10 years ago

Sep. El propio CMake te muestra las variables que puedes modificar agrupadas por funciones.

edoren commented 10 years ago

Ups, error mio jeje, no definí la macro cuando se linkea estáticamente xD, ya hago el arreglo.

danigomez commented 10 years ago

xD, jaja, entonces las macros se tienen que definir en CMakeList según si elegiste la opción de BUILD_SHARED_LIBRARIES o no?? :P, en la documentación de CMake encontré la función add_definitions, que aparentemente hace eso, agregar definiciones de macros a la compilación, vas a hacerlo así??, nunca use CMake, así que hay cosas que me quedan un poco en el aire jeje

edoren commented 10 years ago

Si, lo haré así.